{
 "cells": [
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "Y57RMM1LEQmR"
   },
   "source": [
    "#  <span style=\"color:orange\">Binary Classification Tutorial (CLF101) - Level Beginner</span>"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "GM-nQ7LqEQma"
   },
   "source": [
    "**Date Updated: Feb 25, 2020**\n",
    "\n",
    "# 1.0 Tutorial Objective\n",
    "Welcome to the Binary Classification Tutorial (CLF101) - Level Beginner. This tutorial assumes that you are new to PyCaret and looking to get started with Binary Classification using the `pycaret.classification` Module.\n",
    "\n",
    "In this tutorial we will learn:\n",
    "\n",
    "\n",
    "* **Getting Data:**  How to import data from PyCaret repository\n",
    "* **Setting up Environment:**  How to setup an experiment in PyCaret and get started with building classification models\n",
    "* **Create Model:**  How to create a model, perform stratified cross validation and evaluate classification metrics\n",
    "* **Tune Model:**  How to automatically tune the hyper-parameters of a classification model\n",
    "* **Plot Model:**  How to analyze model performance using various plots\n",
    "* **Finalize Model:** How to finalize the best model at the end of the experiment\n",
    "* **Predict Model:**  How to make predictions on new / unseen data\n",
    "* **Save / Load Model:**  How to save / load a model for future use\n",
    "\n",
    "Read Time : Approx. 30 Minutes\n",
    "\n",
    "\n",
    "## 1.1 Installing PyCaret\n",
    "The first step to get started with PyCaret is to install pycaret. Installation is easy and will only take a few minutes. Follow the instructions below:\n",
    "\n",
    "#### Installing PyCaret in Local Jupyter Notebook\n",
    "`pip install pycaret`  <br />\n",
    "\n",
    "#### Installing PyCaret on Google Colab or Azure Notebooks\n",
    "`!pip install pycaret`\n",
    "\n",
    "\n",
    "## 1.2 Pre-Requisites\n",
    "- Python 3.x\n",
    "- Latest version of pycaret\n",
    "- Internet connection to load data from pycaret's repository\n",
    "- Basic Knowledge of Binary Classification\n",
    "\n",
    "## 1.3 For Google colab users:\n",
    "If you are running this notebook on Google colab, run the following code at top of your notebook to display interactive visuals.<br/>\n",
    "<br/>\n",
    "`from pycaret.utils import enable_colab` <br/>\n",
    "`enable_colab()`\n",
    "\n",
    "\n",
    "## 1.4 See also:\n",
    "- __[Binary Classification Tutorial (CLF102) - Intermediate Level](https://github.com/pycaret/pycaret/blob/master/Tutorials/Binary%20Classification%20Tutorial%20Level%20Intermediate%20-%20CLF102.ipynb)__\n",
    "- __[Binary Classification Tutorial (CLF103) - Expert Level](https://github.com/pycaret/pycaret/blob/master/Tutorials/Binary%20Classification%20Tutorial%20Level%20Expert%20-%20CLF103.ipynb)__"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "2DJaOwC_EQme"
   },
   "source": [
    "# 2.0 What is Binary Classification?\n",
    "Binary classification is a supervised machine learning technique where the goal is to predict categorical class labels which are discrete and unoredered such as Pass/Fail, Positive/Negative, Default/Not-Default etc. A few real world use cases for classification are listed below:\n",
    "\n",
    "- Medical testing to determine if a patient has a certain disease or not - the classification property is the presence of the disease.\n",
    "- A \"pass or fail\" test method or quality control in factories, i.e. deciding if a specification has or has not been met – a go/no-go classification.\n",
    "- Information retrieval, namely deciding whether a page or an article should be in the result set of a search or not – the classification property is the relevance of the article, or the usefulness to the user.\n",
    "\n",
    "__[Learn More about Binary Classification](https://medium.com/@categitau/in-one-of-my-previous-posts-i-introduced-machine-learning-and-talked-about-the-two-most-common-c1ac6e18df16)__"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "XC3kSuueEQmh"
   },
   "source": [
    "# 3.0 Overview of the Classification Module in PyCaret\n",
    "PyCaret's classification module (`pycaret.classification`) is a supervised machine learning module which is used for classifying the elements into a binary group based on various techniques and algorithms. Some common use cases of classification problems include predicting customer default (yes or no), customer churn (customer will leave or stay), disease found (positive or negative).\n",
    "\n",
    "The PyCaret classification module can be used for Binary or Multi-class classification problems. It has over 18 algorithms and 14 plots to analyze the performance of models. Be it hyper-parameter tuning, ensembling or advanced techniques like stacking, PyCaret's classification module has it all."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "aAKRo-EbEQml"
   },
   "source": [
    "# 4.0 Dataset for the Tutorial"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "VLKxlFjrEQmq"
   },
   "source": [
    "For this tutorial we will use a dataset from UCI called **Default of Credit Card Clients Dataset**. This dataset contains information on default payments, demographic factors, credit data, payment history, and billing statements of credit card clients in Taiwan from April 2005 to September 2005. There are 24,000 samples and 25 features. Short descriptions of each column are as follows:\n",
    "\n",
    "- **ID:** ID of each client\n",
    "- **LIMIT_BAL:** Amount of given credit in NT dollars (includes individual and family/supplementary credit)\n",
    "- **SEX:** Gender (1=male, 2=female)\n",
    "- **EDUCATION:** (1=graduate school, 2=university, 3=high school, 4=others, 5=unknown, 6=unknown)\n",
    "- **MARRIAGE:** Marital status (1=married, 2=single, 3=others)\n",
    "- **AGE:** Age in years\n",
    "- **PAY_0 to PAY_6:** Repayment status by n months ago (PAY_0 = last month ... PAY_6 = 6 months ago) (Labels: -1=pay duly, 1=payment delay for one month, 2=payment delay for two months, ... 8=payment delay for eight months, 9=payment delay for nine months and above)\n",
    "- **BILL_AMT1 to BILL_AMT6:** Amount of bill statement by n months ago ( BILL_AMT1 = last_month .. BILL_AMT6 = 6 months ago)\n",
    "- **PAY_AMT1 to PAY_AMT6:** Amount of payment by n months ago ( BILL_AMT1 = last_month .. BILL_AMT6 = 6 months ago)\n",
    "- **default:** Default payment (1=yes, 0=no) `Target Column`\n",
    "\n",
    "#### Dataset Acknowledgement:\n",
    "Lichman, M. (2013). UCI Machine Learning Repository. Irvine, CA: University of California, School of Information and Computer Science.\n",
    "\n",
    "The original dataset and data dictionary can be __[found here.](https://archive.ics.uci.edu/ml/datasets/default+of+credit+card+clients)__ "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "Ui_rALqYEQmv"
   },
   "source": [
    "# 5.0 Getting the Data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "BfqIMeJNEQmz"
   },
   "source": [
    "You can download the data from the original source __[found here](https://archive.ics.uci.edu/ml/datasets/default+of+credit+card+clients)__ and load it using pandas __[(Learn How)](https://pandas.pydata.org/pandas-docs/stable/reference/api/pandas.read_csv.html)__ or you can use PyCaret's data respository to load the data using the `get_data()` function (This will require an internet connection)."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 211
    },
    "colab_type": "code",
    "id": "lUvE187JEQm3",
    "outputId": "8741262c-0e33-4ec0-b54d-3c8fb41e52c0"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>LIMIT_BAL</th>\n",
       "      <th>SEX</th>\n",
       "      <th>EDUCATION</th>\n",
       "      <th>MARRIAGE</th>\n",
       "      <th>AGE</th>\n",
       "      <th>PAY_1</th>\n",
       "      <th>PAY_2</th>\n",
       "      <th>PAY_3</th>\n",
       "      <th>PAY_4</th>\n",
       "      <th>PAY_5</th>\n",
       "      <th>...</th>\n",
       "      <th>BILL_AMT4</th>\n",
       "      <th>BILL_AMT5</th>\n",
       "      <th>BILL_AMT6</th>\n",
       "      <th>PAY_AMT1</th>\n",
       "      <th>PAY_AMT2</th>\n",
       "      <th>PAY_AMT3</th>\n",
       "      <th>PAY_AMT4</th>\n",
       "      <th>PAY_AMT5</th>\n",
       "      <th>PAY_AMT6</th>\n",
       "      <th>default</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>20000</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>24</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>-1</td>\n",
       "      <td>-1</td>\n",
       "      <td>-2</td>\n",
       "      <td>...</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>689.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>90000</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>34</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>14331.0</td>\n",
       "      <td>14948.0</td>\n",
       "      <td>15549.0</td>\n",
       "      <td>1518.0</td>\n",
       "      <td>1500.0</td>\n",
       "      <td>1000.0</td>\n",
       "      <td>1000.0</td>\n",
       "      <td>1000.0</td>\n",
       "      <td>5000.0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>50000</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>37</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>28314.0</td>\n",
       "      <td>28959.0</td>\n",
       "      <td>29547.0</td>\n",
       "      <td>2000.0</td>\n",
       "      <td>2019.0</td>\n",
       "      <td>1200.0</td>\n",
       "      <td>1100.0</td>\n",
       "      <td>1069.0</td>\n",
       "      <td>1000.0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>50000</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>57</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>20940.0</td>\n",
       "      <td>19146.0</td>\n",
       "      <td>19131.0</td>\n",
       "      <td>2000.0</td>\n",
       "      <td>36681.0</td>\n",
       "      <td>10000.0</td>\n",
       "      <td>9000.0</td>\n",
       "      <td>689.0</td>\n",
       "      <td>679.0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>50000</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>37</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>19394.0</td>\n",
       "      <td>19619.0</td>\n",
       "      <td>20024.0</td>\n",
       "      <td>2500.0</td>\n",
       "      <td>1815.0</td>\n",
       "      <td>657.0</td>\n",
       "      <td>1000.0</td>\n",
       "      <td>1000.0</td>\n",
       "      <td>800.0</td>\n",
       "      <td>0</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 24 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   LIMIT_BAL  SEX  EDUCATION  MARRIAGE  AGE  PAY_1  PAY_2  PAY_3  PAY_4  \\\n",
       "0      20000    2          2         1   24      2      2     -1     -1   \n",
       "1      90000    2          2         2   34      0      0      0      0   \n",
       "2      50000    2          2         1   37      0      0      0      0   \n",
       "3      50000    1          2         1   57     -1      0     -1      0   \n",
       "4      50000    1          1         2   37      0      0      0      0   \n",
       "\n",
       "   PAY_5  ...  BILL_AMT4  BILL_AMT5  BILL_AMT6  PAY_AMT1  PAY_AMT2  PAY_AMT3  \\\n",
       "0     -2  ...        0.0        0.0        0.0       0.0     689.0       0.0   \n",
       "1      0  ...    14331.0    14948.0    15549.0    1518.0    1500.0    1000.0   \n",
       "2      0  ...    28314.0    28959.0    29547.0    2000.0    2019.0    1200.0   \n",
       "3      0  ...    20940.0    19146.0    19131.0    2000.0   36681.0   10000.0   \n",
       "4      0  ...    19394.0    19619.0    20024.0    2500.0    1815.0     657.0   \n",
       "\n",
       "   PAY_AMT4  PAY_AMT5  PAY_AMT6  default  \n",
       "0       0.0       0.0       0.0        1  \n",
       "1    1000.0    1000.0    5000.0        0  \n",
       "2    1100.0    1069.0    1000.0        0  \n",
       "3    9000.0     689.0     679.0        0  \n",
       "4    1000.0    1000.0     800.0        0  \n",
       "\n",
       "[5 rows x 24 columns]"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "from pycaret.datasets import get_data\n",
    "dataset = get_data('credit')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 33
    },
    "colab_type": "code",
    "id": "kMqDGBkJEQnN",
    "outputId": "b2015b7a-4c1a-4377-d9cf-3e9ac5ce3ea2"
   },
   "outputs": [
    {
     "data": {
      "text/plain": [
       "(24000, 24)"
      ]
     },
     "execution_count": 2,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "#check the shape of data\n",
    "dataset.shape"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "LyGFryEhEQne"
   },
   "source": [
    "In order to demonstrate the `predict_model()` function on unseen data, a sample of 1200 records has been withheld from the original dataset to be used for predictions. This should not be confused with a train/test split as this particular split is performed to simulate a real life scenario. Another way to think about this is that these 1200 records are not available at the time when the machine learning experiment was performed."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 50
    },
    "colab_type": "code",
    "id": "hXmaL1xFEQnj",
    "outputId": "f1f62a7d-5d3d-4832-ee00-a4d20ee39c41"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Data for Modeling: (22800, 24)\n",
      "Unseen Data For Predictions: (1200, 24)\n"
     ]
    }
   ],
   "source": [
    "data = dataset.sample(frac=0.95, random_state=786).reset_index(drop=True)\n",
    "data_unseen = dataset.drop(data.index).reset_index(drop=True)\n",
    "\n",
    "print('Data for Modeling: ' + str(data.shape))\n",
    "print('Unseen Data For Predictions: ' + str(data_unseen.shape))"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "y9s9wNcjEQn0"
   },
   "source": [
    "# 6.0 Setting up Environment in PyCaret"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "ZlA01j6NEQn7"
   },
   "source": [
    "The `setup()` function initializes the environment in pycaret and creates the transformation pipeline to prepare the data for modeling and deployment. `setup()` must be called before executing any other function in pycaret. It takes two mandatory parameters: a pandas dataframe and the name of the target column. All other parameters are optional and are used to customize the pre-processing pipeline (we will see them in later tutorials).\n",
    "\n",
    "When `setup()` is executed, PyCaret's inference algorithm will automatically infer the data types for all features based on certain properties. The data type should be inferred correctly but this is not always the case. To account for this, PyCaret displays a table containing the features and their inferred data types after `setup()` is executed. If all of the data types are correctly identified `enter` can be pressed to continue or `quit` can be typed to end the expriment. Ensuring that the data types are correct is of fundamental importance in PyCaret as it automatically performs a few pre-processing tasks which are imperative to any machine learning experiment. These tasks are performed differently for each data type which means it is very important for them to be correctly configured.\n",
    "\n",
    "In later tutorials we will learn how to overwrite PyCaret's infered data type using the `numeric_features` and `categorical_features` parameters in `setup()`."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "BOmRR0deEQoA"
   },
   "outputs": [],
   "source": [
    "from pycaret.classification import *"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 803
    },
    "colab_type": "code",
    "id": "k2IuvfDHEQoO",
    "outputId": "c7754ae9-b060-4218-b6f0-de65a815aa3a",
    "scrolled": false
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      " \n",
      "Setup Succesfully Completed!\n"
     ]
    },
    {
     "data": {
      "text/html": [
       "<style  type=\"text/css\" >\n",
       "</style><table id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7\" ><thead>    <tr>        <th class=\"blank level0\" ></th>        <th class=\"col_heading level0 col0\" >Description</th>        <th class=\"col_heading level0 col1\" >Value</th>    </tr></thead><tbody>\n",
       "                <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row0\" class=\"row_heading level0 row0\" >0</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row0_col0\" class=\"data row0 col0\" >session_id</td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row0_col1\" class=\"data row0 col1\" >123</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row1\" class=\"row_heading level0 row1\" >1</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row1_col0\" class=\"data row1 col0\" >Target Type</td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row1_col1\" class=\"data row1 col1\" >Binary</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row2\" class=\"row_heading level0 row2\" >2</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row2_col0\" class=\"data row2 col0\" >Label Encoded</td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row2_col1\" class=\"data row2 col1\" >None</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row3\" class=\"row_heading level0 row3\" >3</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row3_col0\" class=\"data row3 col0\" >Original Data</td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row3_col1\" class=\"data row3 col1\" >(22800, 24)</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row4\" class=\"row_heading level0 row4\" >4</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row4_col0\" class=\"data row4 col0\" >Missing Values </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row4_col1\" class=\"data row4 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row5\" class=\"row_heading level0 row5\" >5</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row5_col0\" class=\"data row5 col0\" >Numeric Features </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row5_col1\" class=\"data row5 col1\" >14</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row6\" class=\"row_heading level0 row6\" >6</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row6_col0\" class=\"data row6 col0\" >Categorical Features </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row6_col1\" class=\"data row6 col1\" >9</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row7\" class=\"row_heading level0 row7\" >7</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row7_col0\" class=\"data row7 col0\" >Ordinal Features </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row7_col1\" class=\"data row7 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row8\" class=\"row_heading level0 row8\" >8</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row8_col0\" class=\"data row8 col0\" >High Cardinality Features </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row8_col1\" class=\"data row8 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row9\" class=\"row_heading level0 row9\" >9</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row9_col0\" class=\"data row9 col0\" >High Cardinality Method </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row9_col1\" class=\"data row9 col1\" >None</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row10\" class=\"row_heading level0 row10\" >10</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row10_col0\" class=\"data row10 col0\" >Sampled Data</td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row10_col1\" class=\"data row10 col1\" >(22800, 24)</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row11\" class=\"row_heading level0 row11\" >11</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row11_col0\" class=\"data row11 col0\" >Transformed Train Set</td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row11_col1\" class=\"data row11 col1\" >(15959, 90)</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row12\" class=\"row_heading level0 row12\" >12</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row12_col0\" class=\"data row12 col0\" >Transformed Test Set</td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row12_col1\" class=\"data row12 col1\" >(6841, 90)</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row13\" class=\"row_heading level0 row13\" >13</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row13_col0\" class=\"data row13 col0\" >Numeric Imputer </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row13_col1\" class=\"data row13 col1\" >mean</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row14\" class=\"row_heading level0 row14\" >14</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row14_col0\" class=\"data row14 col0\" >Categorical Imputer </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row14_col1\" class=\"data row14 col1\" >constant</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row15\" class=\"row_heading level0 row15\" >15</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row15_col0\" class=\"data row15 col0\" >Normalize </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row15_col1\" class=\"data row15 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row16\" class=\"row_heading level0 row16\" >16</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row16_col0\" class=\"data row16 col0\" >Normalize Method </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row16_col1\" class=\"data row16 col1\" >None</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row17\" class=\"row_heading level0 row17\" >17</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row17_col0\" class=\"data row17 col0\" >Transformation </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row17_col1\" class=\"data row17 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row18\" class=\"row_heading level0 row18\" >18</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row18_col0\" class=\"data row18 col0\" >Transformation Method </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row18_col1\" class=\"data row18 col1\" >None</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row19\" class=\"row_heading level0 row19\" >19</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row19_col0\" class=\"data row19 col0\" >PCA </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row19_col1\" class=\"data row19 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row20\" class=\"row_heading level0 row20\" >20</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row20_col0\" class=\"data row20 col0\" >PCA Method </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row20_col1\" class=\"data row20 col1\" >None</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row21\" class=\"row_heading level0 row21\" >21</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row21_col0\" class=\"data row21 col0\" >PCA Components </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row21_col1\" class=\"data row21 col1\" >None</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row22\" class=\"row_heading level0 row22\" >22</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row22_col0\" class=\"data row22 col0\" >Ignore Low Variance </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row22_col1\" class=\"data row22 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row23\" class=\"row_heading level0 row23\" >23</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row23_col0\" class=\"data row23 col0\" >Combine Rare Levels </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row23_col1\" class=\"data row23 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row24\" class=\"row_heading level0 row24\" >24</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row24_col0\" class=\"data row24 col0\" >Rare Level Threshold </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row24_col1\" class=\"data row24 col1\" >None</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row25\" class=\"row_heading level0 row25\" >25</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row25_col0\" class=\"data row25 col0\" >Numeric Binning </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row25_col1\" class=\"data row25 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row26\" class=\"row_heading level0 row26\" >26</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row26_col0\" class=\"data row26 col0\" >Remove Outliers </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row26_col1\" class=\"data row26 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row27\" class=\"row_heading level0 row27\" >27</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row27_col0\" class=\"data row27 col0\" >Outliers Threshold </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row27_col1\" class=\"data row27 col1\" >None</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row28\" class=\"row_heading level0 row28\" >28</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row28_col0\" class=\"data row28 col0\" >Remove Multicollinearity </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row28_col1\" class=\"data row28 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row29\" class=\"row_heading level0 row29\" >29</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row29_col0\" class=\"data row29 col0\" >Multicollinearity Threshold </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row29_col1\" class=\"data row29 col1\" >None</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row30\" class=\"row_heading level0 row30\" >30</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row30_col0\" class=\"data row30 col0\" >Clustering </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row30_col1\" class=\"data row30 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row31\" class=\"row_heading level0 row31\" >31</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row31_col0\" class=\"data row31 col0\" >Clustering Iteration </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row31_col1\" class=\"data row31 col1\" >None</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row32\" class=\"row_heading level0 row32\" >32</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row32_col0\" class=\"data row32 col0\" >Polynomial Features </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row32_col1\" class=\"data row32 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row33\" class=\"row_heading level0 row33\" >33</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row33_col0\" class=\"data row33 col0\" >Polynomial Degree </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row33_col1\" class=\"data row33 col1\" >None</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row34\" class=\"row_heading level0 row34\" >34</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row34_col0\" class=\"data row34 col0\" >Trignometry Features </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row34_col1\" class=\"data row34 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row35\" class=\"row_heading level0 row35\" >35</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row35_col0\" class=\"data row35 col0\" >Polynomial Threshold </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row35_col1\" class=\"data row35 col1\" >None</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row36\" class=\"row_heading level0 row36\" >36</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row36_col0\" class=\"data row36 col0\" >Group Features </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row36_col1\" class=\"data row36 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row37\" class=\"row_heading level0 row37\" >37</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row37_col0\" class=\"data row37 col0\" >Feature Selection </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row37_col1\" class=\"data row37 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row38\" class=\"row_heading level0 row38\" >38</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row38_col0\" class=\"data row38 col0\" >Features Selection Threshold </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row38_col1\" class=\"data row38 col1\" >None</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row39\" class=\"row_heading level0 row39\" >39</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row39_col0\" class=\"data row39 col0\" >Feature Interaction </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row39_col1\" class=\"data row39 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row40\" class=\"row_heading level0 row40\" >40</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row40_col0\" class=\"data row40 col0\" >Feature Ratio </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row40_col1\" class=\"data row40 col1\" >False</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7level0_row41\" class=\"row_heading level0 row41\" >41</th>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row41_col0\" class=\"data row41 col0\" >Interaction Threshold </td>\n",
       "                        <td id=\"T_e2b87dec_5d74_11ea_9b9e_84fdd13f47d7row41_col1\" class=\"data row41 col1\" >None</td>\n",
       "            </tr>\n",
       "    </tbody></table>"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x1be459376c8>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "exp_clf101 = setup(data = data, target = 'default', session_id=123) "
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "JJSOhIOxEQoY"
   },
   "source": [
    "Once the setup has been succesfully executed it prints the information grid which contains several important pieces of information. Most of the information is related to the pre-processing pipeline which is constructed when `setup()` is executed. The majority of these features are out of scope for the purposes of this tutorial however a few important things to note at this stage include:\n",
    "\n",
    "- **session_id :**  A pseduo-random number distributed as a seed in all functions for later reproducibility. If no `session_id` is passed, a random number is automatically generated that is distributed to all functions. In this experiment, the `session_id` is set as `123` for later reproducibility.<br/>\n",
    "<br/>\n",
    "- **Target Type :**  Binary or Multiclass. The Target type is automatically detected and shown. There is no difference in how the experiment is performed for Binary or Multiclass problems. All functionalities are identical.<br/>\n",
    "<br/>\n",
    "- **Label Encoded :**  When the Target variable is of type string (i.e. 'Yes' or 'No') instead of 1 or 0, it automatically encodes the label into 1 and 0 and displays the mapping (0 : No, 1 : Yes) for reference. In this experiment no label encoding is required since the target variable is of type numeric. <br/>\n",
    "<br/>\n",
    "- **Original Data :**  Displays the original shape of the dataset. In this experiment (22800, 24) means 22,800 samples and 24 features including the target column. <br/>\n",
    "<br/>\n",
    "- **Missing Values :**  When there are missing values in the original data this will show as True. For this experiment there are no missing values in the dataset. \n",
    "<br/>\n",
    "<br/>\n",
    "- **Numeric Features :**  The number of features inferred as numeric. In this dataset, 14 out of 24 features are inferred as numeric. <br/>\n",
    "<br/>\n",
    "- **Categorical Features :**  The number of features inferred as categorical. In this dataset, 9 out of 24 features are inferred as categorical. <br/>\n",
    "<br/>\n",
    "- **Transformed Train Set :**  Displays the shape of the transformed training set. Notice that the original shape of (22800, 24) is transformed into (15959, 91) for the transformed train set and the number of features have increased to 91 from 24 due to categorical encoding <br/>\n",
    "<br/>\n",
    "- **Transformed Test Set :**  Displays the shape of the transformed test/hold-out set. There are 6841 samples in test/hold-out set. This split is based on the default value of 70/30 that can be changed using the `train_size` parameter in setup. <br/>\n",
    "\n",
    "Notice how a few tasks that are imperative to perform modeling are automatically handled such as missing value imputation (in this case there are no missing values in the training data, but we still need imputers for unseen data), categorical encoding etc. Most of the parameters in `setup()` are optional and used for customizing the pre-processing pipeline. These parameters are out of scope for this tutorial but as you progress to the intermediate and expert levels, we will cover them in much greater detail."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "it_nJo1IEQob"
   },
   "source": [
    "# 7.0 Comparing All Models"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "apb_B9bBEQof"
   },
   "source": [
    "Comparing all models to evaluate performance is the recommended starting point for modeling once the setup is completed (unless you exactly know what kind of model you need, which is often not the case). This function trains all models in the model library and scores them using stratified cross validation for metric evaluation. The output prints a score grid that shows average Accuracy, Recall, Precision, F1 and Kappa accross the folds (10 by default) of all the available models in the model library."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "AsG0b1NIEQoj",
    "outputId": "a6e3a510-45a1-4782-8ffe-0ec138a64eed",
    "scrolled": false
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<style  type=\"text/css\" >\n",
       "    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7 th {\n",
       "          text-align: left;\n",
       "    }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row0_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row0_col1 {\n",
       "            background-color:  yellow;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row0_col2 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row0_col3 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row0_col4 {\n",
       "            background-color:  yellow;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row0_col5 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row0_col6 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row1_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row1_col1 {\n",
       "            background-color:  yellow;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row1_col2 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row1_col3 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row1_col4 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row1_col5 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row1_col6 {\n",
       "            background-color:  yellow;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row2_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row2_col1 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row2_col2 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row2_col3 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row2_col4 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row2_col5 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row2_col6 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row3_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row3_col1 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row3_col2 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row3_col3 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row3_col4 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row3_col5 {\n",
       "            background-color:  yellow;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row3_col6 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row4_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row4_col1 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row4_col2 {\n",
       "            background-color:  yellow;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row4_col3 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row4_col4 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row4_col5 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row4_col6 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row5_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row5_col1 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row5_col2 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row5_col3 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row5_col4 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row5_col5 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row5_col6 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row6_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row6_col1 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row6_col2 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row6_col3 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row6_col4 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row6_col5 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row6_col6 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row7_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row7_col1 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row7_col2 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row7_col3 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row7_col4 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row7_col5 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row7_col6 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row8_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row8_col1 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row8_col2 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row8_col3 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row8_col4 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row8_col5 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row8_col6 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row9_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row9_col1 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row9_col2 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row9_col3 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row9_col4 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row9_col5 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row9_col6 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row10_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row10_col1 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row10_col2 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row10_col3 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row10_col4 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row10_col5 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row10_col6 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row11_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row11_col1 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row11_col2 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row11_col3 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row11_col4 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row11_col5 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row11_col6 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row12_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row12_col1 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row12_col2 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row12_col3 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row12_col4 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row12_col5 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row12_col6 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row13_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row13_col1 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row13_col2 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row13_col3 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row13_col4 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row13_col5 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row13_col6 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row14_col0 {\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row14_col1 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row14_col2 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row14_col3 {\n",
       "            background-color:  yellow;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row14_col4 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row14_col5 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }    #T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row14_col6 {\n",
       "            : ;\n",
       "            text-align:  left;\n",
       "        }</style><table id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7\" ><thead>    <tr>        <th class=\"blank level0\" ></th>        <th class=\"col_heading level0 col0\" >Model</th>        <th class=\"col_heading level0 col1\" >Accuracy</th>        <th class=\"col_heading level0 col2\" >AUC</th>        <th class=\"col_heading level0 col3\" >Recall</th>        <th class=\"col_heading level0 col4\" >Prec.</th>        <th class=\"col_heading level0 col5\" >F1</th>        <th class=\"col_heading level0 col6\" >Kappa</th>    </tr></thead><tbody>\n",
       "                <tr>\n",
       "                        <th id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7level0_row0\" class=\"row_heading level0 row0\" >0</th>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row0_col0\" class=\"data row0 col0\" >Ridge Classifier</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row0_col1\" class=\"data row0 col1\" >0.8236</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row0_col2\" class=\"data row0 col2\" >0</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row0_col3\" class=\"data row0 col3\" >0.3646</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row0_col4\" class=\"data row0 col4\" >0.6932</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row0_col5\" class=\"data row0 col5\" >0.4776</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row0_col6\" class=\"data row0 col6\" >0.3836</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7level0_row1\" class=\"row_heading level0 row1\" >1</th>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row1_col0\" class=\"data row1 col0\" >Linear Discriminant Analysis</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row1_col1\" class=\"data row1 col1\" >0.8236</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row1_col2\" class=\"data row1 col2\" >0.7703</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row1_col3\" class=\"data row1 col3\" >0.3813</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row1_col4\" class=\"data row1 col4\" >0.6818</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row1_col5\" class=\"data row1 col5\" >0.4888</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row1_col6\" class=\"data row1 col6\" >0.3923</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7level0_row2\" class=\"row_heading level0 row2\" >2</th>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row2_col0\" class=\"data row2 col0\" >Gradient Boosting Classifier</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row2_col1\" class=\"data row2 col1\" >0.8225</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row2_col2\" class=\"data row2 col2\" >0.7887</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row2_col3\" class=\"data row2 col3\" >0.3649</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row2_col4\" class=\"data row2 col4\" >0.687</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row2_col5\" class=\"data row2 col5\" >0.4763</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row2_col6\" class=\"data row2 col6\" >0.3813</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7level0_row3\" class=\"row_heading level0 row3\" >3</th>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row3_col0\" class=\"data row3 col0\" >CatBoost Classifier</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row3_col1\" class=\"data row3 col1\" >0.822</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row3_col2\" class=\"data row3 col2\" >0.7867</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row3_col3\" class=\"data row3 col3\" >0.3873</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row3_col4\" class=\"data row3 col4\" >0.6691</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row3_col5\" class=\"data row3 col5\" >0.4904</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row3_col6\" class=\"data row3 col6\" >0.3917</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7level0_row4\" class=\"row_heading level0 row4\" >4</th>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row4_col0\" class=\"data row4 col0\" >Extreme Gradient Boosting</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row4_col1\" class=\"data row4 col1\" >0.8218</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row4_col2\" class=\"data row4 col2\" >0.7894</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row4_col3\" class=\"data row4 col3\" >0.3595</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row4_col4\" class=\"data row4 col4\" >0.6862</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row4_col5\" class=\"data row4 col5\" >0.4715</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row4_col6\" class=\"data row4 col6\" >0.3767</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7level0_row5\" class=\"row_heading level0 row5\" >5</th>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row5_col0\" class=\"data row5 col0\" >Light Gradient Boosting Machine</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row5_col1\" class=\"data row5 col1\" >0.8214</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row5_col2\" class=\"data row5 col2\" >0.7859</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row5_col3\" class=\"data row5 col3\" >0.3878</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row5_col4\" class=\"data row5 col4\" >0.6663</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row5_col5\" class=\"data row5 col5\" >0.49</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row5_col6\" class=\"data row5 col6\" >0.3908</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7level0_row6\" class=\"row_heading level0 row6\" >6</th>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row6_col0\" class=\"data row6 col0\" >Ada Boost Classifier</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row6_col1\" class=\"data row6 col1\" >0.8185</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row6_col2\" class=\"data row6 col2\" >0.7783</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row6_col3\" class=\"data row6 col3\" >0.3507</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row6_col4\" class=\"data row6 col4\" >0.6729</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row6_col5\" class=\"data row6 col5\" >0.4607</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row6_col6\" class=\"data row6 col6\" >0.3644</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7level0_row7\" class=\"row_heading level0 row7\" >7</th>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row7_col0\" class=\"data row7 col0\" >Extra Trees Classifier</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row7_col1\" class=\"data row7 col1\" >0.8093</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row7_col2\" class=\"data row7 col2\" >0.7533</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row7_col3\" class=\"data row7 col3\" >0.3839</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row7_col4\" class=\"data row7 col4\" >0.61</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row7_col5\" class=\"data row7 col5\" >0.4711</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row7_col6\" class=\"data row7 col6\" >0.362</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7level0_row8\" class=\"row_heading level0 row8\" >8</th>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row8_col0\" class=\"data row8 col0\" >Random Forest Classifier</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row8_col1\" class=\"data row8 col1\" >0.8084</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row8_col2\" class=\"data row8 col2\" >0.738</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row8_col3\" class=\"data row8 col3\" >0.3337</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row8_col4\" class=\"data row8 col4\" >0.6254</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row8_col5\" class=\"data row8 col5\" >0.4349</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row8_col6\" class=\"data row8 col6\" >0.3323</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7level0_row9\" class=\"row_heading level0 row9\" >9</th>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row9_col0\" class=\"data row9 col0\" >Quadratic Discriminant Analysis</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row9_col1\" class=\"data row9 col1\" >0.7893</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row9_col2\" class=\"data row9 col2\" >0.7392</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row9_col3\" class=\"data row9 col3\" >0.1734</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row9_col4\" class=\"data row9 col4\" >0.6276</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row9_col5\" class=\"data row9 col5\" >0.2378</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row9_col6\" class=\"data row9 col6\" >0.1698</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7level0_row10\" class=\"row_heading level0 row10\" >10</th>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row10_col0\" class=\"data row10 col0\" >Logistic Regression</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row10_col1\" class=\"data row10 col1\" >0.7786</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row10_col2\" class=\"data row10 col2\" >0.6508</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row10_col3\" class=\"data row10 col3\" >0.0006</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row10_col4\" class=\"data row10 col4\" >0.075</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row10_col5\" class=\"data row10 col5\" >0.0011</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row10_col6\" class=\"data row10 col6\" >0.0001</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7level0_row11\" class=\"row_heading level0 row11\" >11</th>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row11_col0\" class=\"data row11 col0\" >K Neighbors Classifier</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row11_col1\" class=\"data row11 col1\" >0.7505</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row11_col2\" class=\"data row11 col2\" >0.6099</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row11_col3\" class=\"data row11 col3\" >0.1802</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row11_col4\" class=\"data row11 col4\" >0.3693</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row11_col5\" class=\"data row11 col5\" >0.2421</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row11_col6\" class=\"data row11 col6\" >0.1134</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7level0_row12\" class=\"row_heading level0 row12\" >12</th>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row12_col0\" class=\"data row12 col0\" >Decision Tree Classifier</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row12_col1\" class=\"data row12 col1\" >0.7294</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row12_col2\" class=\"data row12 col2\" >0.6197</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row12_col3\" class=\"data row12 col3\" >0.4221</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row12_col4\" class=\"data row12 col4\" >0.3953</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row12_col5\" class=\"data row12 col5\" >0.4081</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row12_col6\" class=\"data row12 col6\" >0.233</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7level0_row13\" class=\"row_heading level0 row13\" >13</th>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row13_col0\" class=\"data row13 col0\" >SVM - Linear Kernel</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row13_col1\" class=\"data row13 col1\" >0.653</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row13_col2\" class=\"data row13 col2\" >0</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row13_col3\" class=\"data row13 col3\" >0.2547</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row13_col4\" class=\"data row13 col4\" >0.1056</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row13_col5\" class=\"data row13 col5\" >0.112</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row13_col6\" class=\"data row13 col6\" >0.0121</td>\n",
       "            </tr>\n",
       "            <tr>\n",
       "                        <th id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7level0_row14\" class=\"row_heading level0 row14\" >14</th>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row14_col0\" class=\"data row14 col0\" >Naive Bayes</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row14_col1\" class=\"data row14 col1\" >0.3651</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row14_col2\" class=\"data row14 col2\" >0.6457</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row14_col3\" class=\"data row14 col3\" >0.902</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row14_col4\" class=\"data row14 col4\" >0.2455</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row14_col5\" class=\"data row14 col5\" >0.3859</td>\n",
       "                        <td id=\"T_dc84cb8c_5d75_11ea_a89d_84fdd13f47d7row14_col6\" class=\"data row14 col6\" >0.0585</td>\n",
       "            </tr>\n",
       "    </tbody></table>"
      ],
      "text/plain": [
       "<pandas.io.formats.style.Styler at 0x1be45a3e248>"
      ]
     },
     "execution_count": 6,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "compare_models()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "nZAUhQGLEQoz"
   },
   "source": [
    "Two simple words of code ***(not even a line)*** have created over 15 models using 10 fold stratified cross validation and evaluated the 5 most commonly used classification metrics (Accuracy, Recall, Precision, F1, Kappa). The score grid printed above highlights the highest performing metric for comparison purposes only. The grid by default is sorted using 'Accuracy' (highest to lowest) which can be changed by passing the `sort` parameter. For example `compare_models(sort = 'Recall')` will sort the grid by Recall instead of Accuracy. If you want to change the fold parameter from the default value of `10` to a different value then you can use the `fold` parameter. For example `compare_models(fold = 5)` will compare all models on 5 fold cross validation. Reducing the number of folds will improve the training time."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "P5m2pciOEQo4"
   },
   "source": [
    "# 8.0 Create a Model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "u_6cIilfEQo7"
   },
   "source": [
    "While `compare_models()` is a powerful function and often a starting point in any experiment, it does not return any trained models. PyCaret's recommended experiment workflow is to use `compare_models()` right after setup to evaluate top performing models and finalize a few candidates for continued experimentation. As such, the function that actually allows to you create a model is unimaginatively called `create_model()`. This function creates a model and scores it using stratified cross validation. Similar to `compare_models()`, the output prints a score grid that shows Accuracy, Recall, Precision, F1 and Kappa by fold. \n",
    "\n",
    "For the remaining part of this tutorial, we will work with the below models as our candidate models. The selections are for illustration purposes only and do not necessarily mean they are the top performing or ideal for this type of data.\n",
    "\n",
    "- Decision Tree Classifier ('dt')\n",
    "- K Neighbors Classifier ('knn')\n",
    "- Random Forest Classifier ('rf')\n",
    "\n",
    "There are 18 classifiers available in the model library of PyCaret. Please view the `create_model()` docstring for the list of all available models."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "UWMSeyNhEQo-"
   },
   "source": [
    "### 8.1 Decision Tree Classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 392
    },
    "colab_type": "code",
    "id": "LP896uSIEQpD",
    "outputId": "d6d31562-feb5-4052-ee23-0a444fecaacf"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Accuracy</th>\n",
       "      <th>AUC</th>\n",
       "      <th>Recall</th>\n",
       "      <th>Prec.</th>\n",
       "      <th>F1</th>\n",
       "      <th>Kappa</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.7325</td>\n",
       "      <td>0.6213</td>\n",
       "      <td>0.4221</td>\n",
       "      <td>0.4005</td>\n",
       "      <td>0.4110</td>\n",
       "      <td>0.2381</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.7237</td>\n",
       "      <td>0.6199</td>\n",
       "      <td>0.4306</td>\n",
       "      <td>0.3878</td>\n",
       "      <td>0.4081</td>\n",
       "      <td>0.2285</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.7400</td>\n",
       "      <td>0.6361</td>\n",
       "      <td>0.4504</td>\n",
       "      <td>0.4184</td>\n",
       "      <td>0.4338</td>\n",
       "      <td>0.2654</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.7155</td>\n",
       "      <td>0.5984</td>\n",
       "      <td>0.3853</td>\n",
       "      <td>0.3646</td>\n",
       "      <td>0.3747</td>\n",
       "      <td>0.1907</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.7375</td>\n",
       "      <td>0.6175</td>\n",
       "      <td>0.4023</td>\n",
       "      <td>0.4057</td>\n",
       "      <td>0.4040</td>\n",
       "      <td>0.2356</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.7356</td>\n",
       "      <td>0.6376</td>\n",
       "      <td>0.4618</td>\n",
       "      <td>0.4127</td>\n",
       "      <td>0.4358</td>\n",
       "      <td>0.2639</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.7237</td>\n",
       "      <td>0.6210</td>\n",
       "      <td>0.4363</td>\n",
       "      <td>0.3889</td>\n",
       "      <td>0.4112</td>\n",
       "      <td>0.2315</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.7387</td>\n",
       "      <td>0.6365</td>\n",
       "      <td>0.4533</td>\n",
       "      <td>0.4167</td>\n",
       "      <td>0.4342</td>\n",
       "      <td>0.2647</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.7262</td>\n",
       "      <td>0.6062</td>\n",
       "      <td>0.3909</td>\n",
       "      <td>0.3833</td>\n",
       "      <td>0.3871</td>\n",
       "      <td>0.2108</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0.7210</td>\n",
       "      <td>0.6030</td>\n",
       "      <td>0.3881</td>\n",
       "      <td>0.3743</td>\n",
       "      <td>0.3811</td>\n",
       "      <td>0.2011</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mean</th>\n",
       "      <td>0.7294</td>\n",
       "      <td>0.6197</td>\n",
       "      <td>0.4221</td>\n",
       "      <td>0.3953</td>\n",
       "      <td>0.4081</td>\n",
       "      <td>0.2330</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SD</th>\n",
       "      <td>0.0081</td>\n",
       "      <td>0.0134</td>\n",
       "      <td>0.0274</td>\n",
       "      <td>0.0175</td>\n",
       "      <td>0.0211</td>\n",
       "      <td>0.0252</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      Accuracy     AUC  Recall   Prec.      F1   Kappa\n",
       "0       0.7325  0.6213  0.4221  0.4005  0.4110  0.2381\n",
       "1       0.7237  0.6199  0.4306  0.3878  0.4081  0.2285\n",
       "2       0.7400  0.6361  0.4504  0.4184  0.4338  0.2654\n",
       "3       0.7155  0.5984  0.3853  0.3646  0.3747  0.1907\n",
       "4       0.7375  0.6175  0.4023  0.4057  0.4040  0.2356\n",
       "5       0.7356  0.6376  0.4618  0.4127  0.4358  0.2639\n",
       "6       0.7237  0.6210  0.4363  0.3889  0.4112  0.2315\n",
       "7       0.7387  0.6365  0.4533  0.4167  0.4342  0.2647\n",
       "8       0.7262  0.6062  0.3909  0.3833  0.3871  0.2108\n",
       "9       0.7210  0.6030  0.3881  0.3743  0.3811  0.2011\n",
       "Mean    0.7294  0.6197  0.4221  0.3953  0.4081  0.2330\n",
       "SD      0.0081  0.0134  0.0274  0.0175  0.0211  0.0252"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "dt = create_model('dt')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "FRat05yGEQpQ",
    "outputId": "c8e6a190-8bec-4646-d2c8-8a92b129c484"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "DecisionTreeClassifier(ccp_alpha=0.0, class_weight=None, criterion='gini',\n",
      "                       max_depth=None, max_features=None, max_leaf_nodes=None,\n",
      "                       min_impurity_decrease=0.0, min_impurity_split=None,\n",
      "                       min_samples_leaf=1, min_samples_split=2,\n",
      "                       min_weight_fraction_leaf=0.0, presort='deprecated',\n",
      "                       random_state=123, splitter='best')\n"
     ]
    }
   ],
   "source": [
    "#trained model object is stored in the variable 'dt'. \n",
    "print(dt)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "rWUojqBCEQpb"
   },
   "source": [
    "### 8.2 K Neighbors Classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 392
    },
    "colab_type": "code",
    "id": "2uonD20gEQpe",
    "outputId": "560e3cb6-41d5-4293-b1c5-2bd1cf3bc63b"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Accuracy</th>\n",
       "      <th>AUC</th>\n",
       "      <th>Recall</th>\n",
       "      <th>Prec.</th>\n",
       "      <th>F1</th>\n",
       "      <th>Kappa</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.7406</td>\n",
       "      <td>0.5879</td>\n",
       "      <td>0.1671</td>\n",
       "      <td>0.3296</td>\n",
       "      <td>0.2218</td>\n",
       "      <td>0.0857</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.7350</td>\n",
       "      <td>0.5787</td>\n",
       "      <td>0.1473</td>\n",
       "      <td>0.2989</td>\n",
       "      <td>0.1973</td>\n",
       "      <td>0.0601</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.7632</td>\n",
       "      <td>0.6648</td>\n",
       "      <td>0.2096</td>\n",
       "      <td>0.4277</td>\n",
       "      <td>0.2814</td>\n",
       "      <td>0.1590</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.7462</td>\n",
       "      <td>0.5984</td>\n",
       "      <td>0.1530</td>\n",
       "      <td>0.3375</td>\n",
       "      <td>0.2105</td>\n",
       "      <td>0.0842</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.7550</td>\n",
       "      <td>0.6098</td>\n",
       "      <td>0.2040</td>\n",
       "      <td>0.3956</td>\n",
       "      <td>0.2692</td>\n",
       "      <td>0.1397</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.7613</td>\n",
       "      <td>0.6203</td>\n",
       "      <td>0.1870</td>\n",
       "      <td>0.4125</td>\n",
       "      <td>0.2573</td>\n",
       "      <td>0.1384</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.7412</td>\n",
       "      <td>0.5883</td>\n",
       "      <td>0.1671</td>\n",
       "      <td>0.3315</td>\n",
       "      <td>0.2222</td>\n",
       "      <td>0.0868</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.7594</td>\n",
       "      <td>0.6139</td>\n",
       "      <td>0.1898</td>\n",
       "      <td>0.4061</td>\n",
       "      <td>0.2587</td>\n",
       "      <td>0.1371</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.7487</td>\n",
       "      <td>0.6100</td>\n",
       "      <td>0.1898</td>\n",
       "      <td>0.3681</td>\n",
       "      <td>0.2505</td>\n",
       "      <td>0.1177</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0.7542</td>\n",
       "      <td>0.6264</td>\n",
       "      <td>0.1870</td>\n",
       "      <td>0.3860</td>\n",
       "      <td>0.2519</td>\n",
       "      <td>0.1256</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mean</th>\n",
       "      <td>0.7505</td>\n",
       "      <td>0.6099</td>\n",
       "      <td>0.1802</td>\n",
       "      <td>0.3693</td>\n",
       "      <td>0.2421</td>\n",
       "      <td>0.1134</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SD</th>\n",
       "      <td>0.0091</td>\n",
       "      <td>0.0234</td>\n",
       "      <td>0.0197</td>\n",
       "      <td>0.0407</td>\n",
       "      <td>0.0260</td>\n",
       "      <td>0.0305</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      Accuracy     AUC  Recall   Prec.      F1   Kappa\n",
       "0       0.7406  0.5879  0.1671  0.3296  0.2218  0.0857\n",
       "1       0.7350  0.5787  0.1473  0.2989  0.1973  0.0601\n",
       "2       0.7632  0.6648  0.2096  0.4277  0.2814  0.1590\n",
       "3       0.7462  0.5984  0.1530  0.3375  0.2105  0.0842\n",
       "4       0.7550  0.6098  0.2040  0.3956  0.2692  0.1397\n",
       "5       0.7613  0.6203  0.1870  0.4125  0.2573  0.1384\n",
       "6       0.7412  0.5883  0.1671  0.3315  0.2222  0.0868\n",
       "7       0.7594  0.6139  0.1898  0.4061  0.2587  0.1371\n",
       "8       0.7487  0.6100  0.1898  0.3681  0.2505  0.1177\n",
       "9       0.7542  0.6264  0.1870  0.3860  0.2519  0.1256\n",
       "Mean    0.7505  0.6099  0.1802  0.3693  0.2421  0.1134\n",
       "SD      0.0091  0.0234  0.0197  0.0407  0.0260  0.0305"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "knn = create_model('knn')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "nSg3OUjuEQpu"
   },
   "source": [
    "### 8.3 Random Forest Classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 392
    },
    "colab_type": "code",
    "id": "FGCoUiQpEQpz",
    "outputId": "212cb736-6dcb-4b77-e45b-14ad895bff43"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Accuracy</th>\n",
       "      <th>AUC</th>\n",
       "      <th>Recall</th>\n",
       "      <th>Prec.</th>\n",
       "      <th>F1</th>\n",
       "      <th>Kappa</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.8064</td>\n",
       "      <td>0.7435</td>\n",
       "      <td>0.3229</td>\n",
       "      <td>0.6196</td>\n",
       "      <td>0.4246</td>\n",
       "      <td>0.3218</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.8076</td>\n",
       "      <td>0.7488</td>\n",
       "      <td>0.3314</td>\n",
       "      <td>0.6223</td>\n",
       "      <td>0.4325</td>\n",
       "      <td>0.3295</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.8170</td>\n",
       "      <td>0.7576</td>\n",
       "      <td>0.3683</td>\n",
       "      <td>0.6533</td>\n",
       "      <td>0.4710</td>\n",
       "      <td>0.3707</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.8139</td>\n",
       "      <td>0.7175</td>\n",
       "      <td>0.3513</td>\n",
       "      <td>0.6458</td>\n",
       "      <td>0.4550</td>\n",
       "      <td>0.3544</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.8026</td>\n",
       "      <td>0.7199</td>\n",
       "      <td>0.2890</td>\n",
       "      <td>0.6145</td>\n",
       "      <td>0.3931</td>\n",
       "      <td>0.2930</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.8114</td>\n",
       "      <td>0.7446</td>\n",
       "      <td>0.3569</td>\n",
       "      <td>0.6300</td>\n",
       "      <td>0.4557</td>\n",
       "      <td>0.3520</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.8008</td>\n",
       "      <td>0.7286</td>\n",
       "      <td>0.3258</td>\n",
       "      <td>0.5897</td>\n",
       "      <td>0.4197</td>\n",
       "      <td>0.3113</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.8070</td>\n",
       "      <td>0.7502</td>\n",
       "      <td>0.3144</td>\n",
       "      <td>0.6271</td>\n",
       "      <td>0.4189</td>\n",
       "      <td>0.3181</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.8114</td>\n",
       "      <td>0.7262</td>\n",
       "      <td>0.3371</td>\n",
       "      <td>0.6398</td>\n",
       "      <td>0.4416</td>\n",
       "      <td>0.3410</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0.8063</td>\n",
       "      <td>0.7428</td>\n",
       "      <td>0.3399</td>\n",
       "      <td>0.6122</td>\n",
       "      <td>0.4372</td>\n",
       "      <td>0.3315</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mean</th>\n",
       "      <td>0.8084</td>\n",
       "      <td>0.7380</td>\n",
       "      <td>0.3337</td>\n",
       "      <td>0.6254</td>\n",
       "      <td>0.4349</td>\n",
       "      <td>0.3323</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SD</th>\n",
       "      <td>0.0048</td>\n",
       "      <td>0.0131</td>\n",
       "      <td>0.0216</td>\n",
       "      <td>0.0174</td>\n",
       "      <td>0.0213</td>\n",
       "      <td>0.0217</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      Accuracy     AUC  Recall   Prec.      F1   Kappa\n",
       "0       0.8064  0.7435  0.3229  0.6196  0.4246  0.3218\n",
       "1       0.8076  0.7488  0.3314  0.6223  0.4325  0.3295\n",
       "2       0.8170  0.7576  0.3683  0.6533  0.4710  0.3707\n",
       "3       0.8139  0.7175  0.3513  0.6458  0.4550  0.3544\n",
       "4       0.8026  0.7199  0.2890  0.6145  0.3931  0.2930\n",
       "5       0.8114  0.7446  0.3569  0.6300  0.4557  0.3520\n",
       "6       0.8008  0.7286  0.3258  0.5897  0.4197  0.3113\n",
       "7       0.8070  0.7502  0.3144  0.6271  0.4189  0.3181\n",
       "8       0.8114  0.7262  0.3371  0.6398  0.4416  0.3410\n",
       "9       0.8063  0.7428  0.3399  0.6122  0.4372  0.3315\n",
       "Mean    0.8084  0.7380  0.3337  0.6254  0.4349  0.3323\n",
       "SD      0.0048  0.0131  0.0216  0.0174  0.0213  0.0217"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "rf = create_model('rf')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "z6F3Fk7TEQp8"
   },
   "source": [
    "Notice that the mean score of all models matches with the score printed in `compare_models()`. This is because the metrics printed in the `compare_models()` score grid are the average scores across all CV folds. Similar to `compare_models()`, if you want to change the fold parameter from the default value of 10 to a different value then you can use the `fold` parameter. For Example: `create_model('dt', fold = 5)` will create a Decision Tree Classifier using 5 fold stratified CV."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "XvpjzbGQEQqB"
   },
   "source": [
    "# 9.0 Tune a Model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "nc_GgksHEQqE"
   },
   "source": [
    "When a model is created using the `create_model()` function it uses the default hyperparameters. In order to tune hyperparameters, the `tune_model()` function is used. This function automatically tunes the hyperparameters of a model on a pre-defined search space and scores it using stratified cross validation. The output prints a score grid that shows Accuracy, Recall, Precision, F1 and Kappa by fold. <br/>\n",
    "<br/>\n",
    "**Note:** `tune_model()` does not take a trained model object as an input. It instead requires a model name to be passed as an abbreviated string similar to how it is passed in `create_model()`. All other functions in `pycaret.classification` require a trained model object as an argument."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "BQlMCxrUEQqG"
   },
   "source": [
    "### 9.1 Decision Tree Classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 392
    },
    "colab_type": "code",
    "id": "of46aj6vEQqJ",
    "outputId": "26f7f708-739a-489b-bb76-b33e0a800362"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Accuracy</th>\n",
       "      <th>AUC</th>\n",
       "      <th>Recall</th>\n",
       "      <th>Prec.</th>\n",
       "      <th>F1</th>\n",
       "      <th>Kappa</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.8264</td>\n",
       "      <td>0.7219</td>\n",
       "      <td>0.3201</td>\n",
       "      <td>0.7533</td>\n",
       "      <td>0.4493</td>\n",
       "      <td>0.3656</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.8239</td>\n",
       "      <td>0.7259</td>\n",
       "      <td>0.3059</td>\n",
       "      <td>0.7500</td>\n",
       "      <td>0.4346</td>\n",
       "      <td>0.3515</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.8158</td>\n",
       "      <td>0.7548</td>\n",
       "      <td>0.2946</td>\n",
       "      <td>0.6980</td>\n",
       "      <td>0.4143</td>\n",
       "      <td>0.3258</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.8208</td>\n",
       "      <td>0.7171</td>\n",
       "      <td>0.3173</td>\n",
       "      <td>0.7134</td>\n",
       "      <td>0.4392</td>\n",
       "      <td>0.3508</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.8133</td>\n",
       "      <td>0.7178</td>\n",
       "      <td>0.3173</td>\n",
       "      <td>0.6627</td>\n",
       "      <td>0.4291</td>\n",
       "      <td>0.3337</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.8239</td>\n",
       "      <td>0.7359</td>\n",
       "      <td>0.3003</td>\n",
       "      <td>0.7571</td>\n",
       "      <td>0.4300</td>\n",
       "      <td>0.3481</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.8164</td>\n",
       "      <td>0.7197</td>\n",
       "      <td>0.2975</td>\n",
       "      <td>0.7000</td>\n",
       "      <td>0.4175</td>\n",
       "      <td>0.3290</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.8264</td>\n",
       "      <td>0.7408</td>\n",
       "      <td>0.3031</td>\n",
       "      <td>0.7754</td>\n",
       "      <td>0.4358</td>\n",
       "      <td>0.3557</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.8214</td>\n",
       "      <td>0.7158</td>\n",
       "      <td>0.3003</td>\n",
       "      <td>0.7361</td>\n",
       "      <td>0.4266</td>\n",
       "      <td>0.3423</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0.8107</td>\n",
       "      <td>0.7322</td>\n",
       "      <td>0.3003</td>\n",
       "      <td>0.6584</td>\n",
       "      <td>0.4125</td>\n",
       "      <td>0.3179</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mean</th>\n",
       "      <td>0.8199</td>\n",
       "      <td>0.7282</td>\n",
       "      <td>0.3057</td>\n",
       "      <td>0.7204</td>\n",
       "      <td>0.4289</td>\n",
       "      <td>0.3420</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SD</th>\n",
       "      <td>0.0053</td>\n",
       "      <td>0.0120</td>\n",
       "      <td>0.0087</td>\n",
       "      <td>0.0384</td>\n",
       "      <td>0.0111</td>\n",
       "      <td>0.0143</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      Accuracy     AUC  Recall   Prec.      F1   Kappa\n",
       "0       0.8264  0.7219  0.3201  0.7533  0.4493  0.3656\n",
       "1       0.8239  0.7259  0.3059  0.7500  0.4346  0.3515\n",
       "2       0.8158  0.7548  0.2946  0.6980  0.4143  0.3258\n",
       "3       0.8208  0.7171  0.3173  0.7134  0.4392  0.3508\n",
       "4       0.8133  0.7178  0.3173  0.6627  0.4291  0.3337\n",
       "5       0.8239  0.7359  0.3003  0.7571  0.4300  0.3481\n",
       "6       0.8164  0.7197  0.2975  0.7000  0.4175  0.3290\n",
       "7       0.8264  0.7408  0.3031  0.7754  0.4358  0.3557\n",
       "8       0.8214  0.7158  0.3003  0.7361  0.4266  0.3423\n",
       "9       0.8107  0.7322  0.3003  0.6584  0.4125  0.3179\n",
       "Mean    0.8199  0.7282  0.3057  0.7204  0.4289  0.3420\n",
       "SD      0.0053  0.0120  0.0087  0.0384  0.0111  0.0143"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "tuned_dt = tune_model('dt')"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "__anDkttEQqV",
    "outputId": "7cf46ace-012a-4131-b8b8-370f9d4a63cb"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "DecisionTreeClassifier(ccp_alpha=0.0, class_weight=None, criterion='gini',\n",
      "                       max_depth=3, max_features=78, max_leaf_nodes=None,\n",
      "                       min_impurity_decrease=0.0, min_impurity_split=None,\n",
      "                       min_samples_leaf=3, min_samples_split=2,\n",
      "                       min_weight_fraction_leaf=0.0, presort='deprecated',\n",
      "                       random_state=123, splitter='best')\n"
     ]
    }
   ],
   "source": [
    "#tuned model object is stored in the variable 'tuned_dt'. \n",
    "print(tuned_dt)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "CD-f0delEQqq"
   },
   "source": [
    "### 9.2 K Neighbors Classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 392
    },
    "colab_type": "code",
    "id": "xN1nYwFXEQqv",
    "outputId": "e4ab669d-bee0-4a9d-f5c7-2ed07ec613b9"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Accuracy</th>\n",
       "      <th>AUC</th>\n",
       "      <th>Recall</th>\n",
       "      <th>Prec.</th>\n",
       "      <th>F1</th>\n",
       "      <th>Kappa</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.7738</td>\n",
       "      <td>0.6494</td>\n",
       "      <td>0.0708</td>\n",
       "      <td>0.4310</td>\n",
       "      <td>0.1217</td>\n",
       "      <td>0.0632</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.7769</td>\n",
       "      <td>0.6662</td>\n",
       "      <td>0.0652</td>\n",
       "      <td>0.4694</td>\n",
       "      <td>0.1144</td>\n",
       "      <td>0.0640</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.7838</td>\n",
       "      <td>0.7061</td>\n",
       "      <td>0.1161</td>\n",
       "      <td>0.5541</td>\n",
       "      <td>0.1920</td>\n",
       "      <td>0.1250</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.7769</td>\n",
       "      <td>0.6407</td>\n",
       "      <td>0.0623</td>\n",
       "      <td>0.4681</td>\n",
       "      <td>0.1100</td>\n",
       "      <td>0.0612</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.7769</td>\n",
       "      <td>0.6507</td>\n",
       "      <td>0.0708</td>\n",
       "      <td>0.4717</td>\n",
       "      <td>0.1232</td>\n",
       "      <td>0.0694</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.7788</td>\n",
       "      <td>0.6858</td>\n",
       "      <td>0.0878</td>\n",
       "      <td>0.5000</td>\n",
       "      <td>0.1494</td>\n",
       "      <td>0.0892</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.7807</td>\n",
       "      <td>0.6516</td>\n",
       "      <td>0.0765</td>\n",
       "      <td>0.5294</td>\n",
       "      <td>0.1337</td>\n",
       "      <td>0.0824</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.7845</td>\n",
       "      <td>0.6591</td>\n",
       "      <td>0.0935</td>\n",
       "      <td>0.5789</td>\n",
       "      <td>0.1610</td>\n",
       "      <td>0.1060</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.7769</td>\n",
       "      <td>0.6565</td>\n",
       "      <td>0.0652</td>\n",
       "      <td>0.4694</td>\n",
       "      <td>0.1144</td>\n",
       "      <td>0.0640</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0.7812</td>\n",
       "      <td>0.6807</td>\n",
       "      <td>0.0935</td>\n",
       "      <td>0.5323</td>\n",
       "      <td>0.1590</td>\n",
       "      <td>0.0995</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mean</th>\n",
       "      <td>0.7791</td>\n",
       "      <td>0.6647</td>\n",
       "      <td>0.0802</td>\n",
       "      <td>0.5004</td>\n",
       "      <td>0.1379</td>\n",
       "      <td>0.0824</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SD</th>\n",
       "      <td>0.0032</td>\n",
       "      <td>0.0192</td>\n",
       "      <td>0.0163</td>\n",
       "      <td>0.0442</td>\n",
       "      <td>0.0253</td>\n",
       "      <td>0.0209</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      Accuracy     AUC  Recall   Prec.      F1   Kappa\n",
       "0       0.7738  0.6494  0.0708  0.4310  0.1217  0.0632\n",
       "1       0.7769  0.6662  0.0652  0.4694  0.1144  0.0640\n",
       "2       0.7838  0.7061  0.1161  0.5541  0.1920  0.1250\n",
       "3       0.7769  0.6407  0.0623  0.4681  0.1100  0.0612\n",
       "4       0.7769  0.6507  0.0708  0.4717  0.1232  0.0694\n",
       "5       0.7788  0.6858  0.0878  0.5000  0.1494  0.0892\n",
       "6       0.7807  0.6516  0.0765  0.5294  0.1337  0.0824\n",
       "7       0.7845  0.6591  0.0935  0.5789  0.1610  0.1060\n",
       "8       0.7769  0.6565  0.0652  0.4694  0.1144  0.0640\n",
       "9       0.7812  0.6807  0.0935  0.5323  0.1590  0.0995\n",
       "Mean    0.7791  0.6647  0.0802  0.5004  0.1379  0.0824\n",
       "SD      0.0032  0.0192  0.0163  0.0442  0.0253  0.0209"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "tuned_knn = tune_model('knn')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "KO3zIfs-EQrA"
   },
   "source": [
    "### 9.3 Random Forest Classifier"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 14,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 392
    },
    "colab_type": "code",
    "id": "gmaIfnBMEQrE",
    "outputId": "a59cebfa-f81e-477c-f83c-e9443fd80b0f"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Accuracy</th>\n",
       "      <th>AUC</th>\n",
       "      <th>Recall</th>\n",
       "      <th>Prec.</th>\n",
       "      <th>F1</th>\n",
       "      <th>Kappa</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>0.8289</td>\n",
       "      <td>0.7871</td>\n",
       "      <td>0.3484</td>\n",
       "      <td>0.7410</td>\n",
       "      <td>0.4740</td>\n",
       "      <td>0.3873</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>0.8227</td>\n",
       "      <td>0.7990</td>\n",
       "      <td>0.3513</td>\n",
       "      <td>0.6966</td>\n",
       "      <td>0.4670</td>\n",
       "      <td>0.3743</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>0.8221</td>\n",
       "      <td>0.8251</td>\n",
       "      <td>0.3824</td>\n",
       "      <td>0.6716</td>\n",
       "      <td>0.4874</td>\n",
       "      <td>0.3894</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>0.8227</td>\n",
       "      <td>0.7740</td>\n",
       "      <td>0.3626</td>\n",
       "      <td>0.6882</td>\n",
       "      <td>0.4750</td>\n",
       "      <td>0.3804</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>0.8227</td>\n",
       "      <td>0.7795</td>\n",
       "      <td>0.3513</td>\n",
       "      <td>0.6966</td>\n",
       "      <td>0.4670</td>\n",
       "      <td>0.3743</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>0.8239</td>\n",
       "      <td>0.7918</td>\n",
       "      <td>0.3598</td>\n",
       "      <td>0.6978</td>\n",
       "      <td>0.4748</td>\n",
       "      <td>0.3817</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>0.8202</td>\n",
       "      <td>0.7536</td>\n",
       "      <td>0.3343</td>\n",
       "      <td>0.6941</td>\n",
       "      <td>0.4512</td>\n",
       "      <td>0.3591</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>0.8302</td>\n",
       "      <td>0.7935</td>\n",
       "      <td>0.3569</td>\n",
       "      <td>0.7412</td>\n",
       "      <td>0.4818</td>\n",
       "      <td>0.3948</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>0.8214</td>\n",
       "      <td>0.7649</td>\n",
       "      <td>0.3541</td>\n",
       "      <td>0.6868</td>\n",
       "      <td>0.4673</td>\n",
       "      <td>0.3729</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>0.8138</td>\n",
       "      <td>0.7824</td>\n",
       "      <td>0.3598</td>\n",
       "      <td>0.6414</td>\n",
       "      <td>0.4610</td>\n",
       "      <td>0.3590</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>Mean</th>\n",
       "      <td>0.8229</td>\n",
       "      <td>0.7851</td>\n",
       "      <td>0.3561</td>\n",
       "      <td>0.6955</td>\n",
       "      <td>0.4707</td>\n",
       "      <td>0.3773</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>SD</th>\n",
       "      <td>0.0043</td>\n",
       "      <td>0.0186</td>\n",
       "      <td>0.0116</td>\n",
       "      <td>0.0279</td>\n",
       "      <td>0.0098</td>\n",
       "      <td>0.0113</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "      Accuracy     AUC  Recall   Prec.      F1   Kappa\n",
       "0       0.8289  0.7871  0.3484  0.7410  0.4740  0.3873\n",
       "1       0.8227  0.7990  0.3513  0.6966  0.4670  0.3743\n",
       "2       0.8221  0.8251  0.3824  0.6716  0.4874  0.3894\n",
       "3       0.8227  0.7740  0.3626  0.6882  0.4750  0.3804\n",
       "4       0.8227  0.7795  0.3513  0.6966  0.4670  0.3743\n",
       "5       0.8239  0.7918  0.3598  0.6978  0.4748  0.3817\n",
       "6       0.8202  0.7536  0.3343  0.6941  0.4512  0.3591\n",
       "7       0.8302  0.7935  0.3569  0.7412  0.4818  0.3948\n",
       "8       0.8214  0.7649  0.3541  0.6868  0.4673  0.3729\n",
       "9       0.8138  0.7824  0.3598  0.6414  0.4610  0.3590\n",
       "Mean    0.8229  0.7851  0.3561  0.6955  0.4707  0.3773\n",
       "SD      0.0043  0.0186  0.0116  0.0279  0.0098  0.0113"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "tuned_rf = tune_model('rf')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "IqxEZRi1EQrO"
   },
   "source": [
    "The `tune_model()` function is a random grid search of hyperparameters over a pre-defined search space. By default, it is set to optimize `Accuracy` but this can be changed using `optimize` parameter. For example: `tune_model('dt', optimize = 'AUC')` will search for the hyperparameters of a Decision Tree Classifier that results in highest `AUC`. For the purposes of this example, we have used the default metric `Accuracy` for the sake of simplicity only. Generally, when the dataset is imbalanced (such as the credit dataset we are working with) `Accuracy` is not a good metric for consideration. The methodology behind selecting the right metric to evaluate a classifier is beyond the scope of this tutorial but if you would like to learn more about it, you can __[click here](https://medium.com/@george.drakos62/how-to-select-the-right-evaluation-metric-for-machine-learning-models-part-3-classification-3eac420ec991)__ to read an article on how to choose the right evaluation metric.\n",
    "\n",
    "Notice how the results after tuning have been improved:\n",
    "\n",
    "- Decision Tree Classifier (Before: **`0.7294`** , After: **`0.8199`**)\n",
    "- K Neighbors Classifier (Before: **`0.7505`** , After: **`0.7791`**)\n",
    "- Random Forest Classifier (Before: **`0.8084`** , After: **`0.8229`**)\n",
    "\n",
    "\n",
    "Metrics alone are not the only criteria you should consider when finalizing the best model for production. Other factors to consider include training time, standard deviation of kfolds etc. As you progress through the tutorial series we will discuss those factors in detail at the intermediate and expert levels. For now, let's move forward considering the Tuned Random Forest Classifier as our best model for the remainder of this tutorial."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "w_P46O0jEQrT"
   },
   "source": [
    "# 10.0 Plot a Model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "FGM9GOtjEQrV"
   },
   "source": [
    "Before model finalization, the `plot_model()` function can be used to analyze the performance across different aspects such as AUC, confusion_matrix, decision boundary etc. This function takes a trained model object and returns a plot based on the test / hold-out set. \n",
    "\n",
    "There are 15 different plots available, please see the `plot_model()` docstring for the list of available plots."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "euqkQYJaEQrY"
   },
   "source": [
    "### 10.1 AUC Plot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 15,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "RLbLqvkHEQra",
    "outputId": "fe40b5e3-6375-43e8-e97d-1d487e02eb2d"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x396 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_model(tuned_rf, plot = 'auc')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "bwyoTUDQEQrm"
   },
   "source": [
    "### 10.2 Precision-Recall Curve"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 16,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "4IvchQoiEQrr",
    "outputId": "fdff2076-86fc-42f5-beee-f0051ea30dd4"
   },
   "outputs": [
    {
     "data": {
      "image/png": "iVBORw0KGgoAAAANSUhEUgAAAfYAAAFlCAYAAAAZGcpRAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjEsIGh0dHA6Ly9tYXRwbG90bGliLm9yZy8QZhcZAAAgAElEQVR4nOzdd3gUVdvA4d/sbkIaLfROKKFIiQFCS+jwUgWlR0FUBBULIqKCKKIUwU+kiFiwBJQXBEUBBaUXASEU6b13CCSkbZk53x8b9iUmQESWTTbP7cVlduZk5pnJJs+eM6doSimFEEIIIbyCydMBCCGEEOLekcQuhBBCeBFJ7EIIIYQXkcQuhBBCeBFJ7EIIIYQXkcQuhBBCeBGLpwMQ2cPp06dp3bo1oaGhrm1KKfr27Uu3bt3uyTkmT55MuXLl6NKlyy3LdO7cmVmzZpEvX757cs4WLVrg4+ODn58fmqZhs9kwmUwMGzaMJk2a3JNz3KxKlSps3LiR1atXs2zZMj799NMMZaxWK5988gmrV69GKYVhGHTq1Imnn34aTdPueUy3s379ekaOHEmhQoWYPXs2fn5+//gYmzdv5umnnyYkJMS1LSkpiUqVKjFu3DgKFix4T2IdPXo0BQsW5IUXXrgnx6tSpQqhoaGYTP+r39SoUYMxY8bck+Pfyl9//cX8+fMZPXo0ALquExMTw6JFi9B1HbvdTvPmzXnppZfw9fXl9ddfp3Llyjz11FP3LIYVK1awceNG3nzzTfbt28cLL7xAvnz56NKlCydPnuTNN9+8Z+cS958kduHi5+fHTz/95Hp94cIFOnbsSI0aNahateq/Pv5LL710xzI3n/9e+eCDD6hZs6br9dKlSxk+fDjr16+/5+e6E6UUzz33HCEhIcydO5c8efJw9epVBg4cSHJyMoMHD76v8SxZsoTu3bvz3HPP/avjlC1bNt3PTtd1XnjhBb788kteeeWVfxum23zzzTcEBwff13MePnyYCxcuuF6PGjWK+Ph4vvnmG/LmzUtycjJDhw5lxIgRTJw40S0xtGzZkpYtWwLOJF+/fn23f6AR948kdnFLxYoVo1y5chw/fpy9e/cyf/58UlJSCAoKYtasWXz//ffMmTMHwzAoUKAAI0eOpGLFiiQlJfHee++xbds2zGYzrVq14uWXX+aNN95w1TymTJnC77//jo+PDwULFmTcuHEULVrUVeMNDg7m448/ZsmSJZjNZkJCQhg5ciRFihShT58+hIWFsW3bNs6dO0fDhg15991309W8bkUpxenTp8mfP79r2z+9juPHjzN69GiSkpK4dOkSVatW5aOPPiJPnjx3PP+WLVs4evQon332GWazGYCCBQsyYcIEzpw5A0CfPn149NFHadu2bYbXNWrUoGXLluzfv59u3boRGxvLjBkzADhy5Aj9+vVj9erVHD9+nDFjxnDt2jV0XadPnz4ZWl6++OILVqxYQZ48ebh+/TpDhgxh/PjxbNy4EbPZTK1atXjjjTcICgqiRYsW1KpViwMHDjBkyBBat2592+tMTEwkLi6O8PBwAHbs2MHEiROx2WxcunSJRo0aMXbsWE6fPk2/fv1o2rQpO3fuJCEhgVdffZXWrVuTmJjIiBEj2L9/P0WLFsVsNlOnTh0ADh06xOjRo7l27RqapvHkk0/SpUsXNm/ezIcffkiJEiU4duwY/v7+DBgwgFmzZnHs2DHatGnD8OHD7/hz2rp1KxMmTCAlJQUfHx8GDx5MkyZN+OGHH7L8e7B161bGjx+PYRgADBw4kFq1ajFlyhSuX7/OG2+8waBBg1i0aBHr168nKCgIgICAAN555x22bduWIa758+czd+5c7HY78fHxPP3000RHR3Pp0iVee+01rl69CkDTpk0ZPHjwLbf/8MMPLFu2jA4dOjBnzhx0XSc1NZXGjRu7WpquX7/OmDFjOHjwIHa7nYYNGzJs2DAsFku69+HfPziLbEAJoZQ6deqUCgsLS7dt27Ztql69eurs2bNqwYIFql69eur69etKKaU2b96soqOjVXJyslJKqXXr1qm2bdsqpZQaO3asevnll5XD4VBWq1U9+uijatOmTeq1115TX3zxhTp79qwKDw9XVqtVKaXUzJkz1e+//66UUio0NFRduXJFzZ8/X/Xs2VMlJSUppZSaMmWKevLJJ5VSSj322GPqxRdfVLquq+vXr6vIyEi1cePGTK+refPmqk2bNqpTp04qKipKRUVFqTfeeEOdPHnyrq9j/PjxauHChUoppWw2m+rYsaNaunRpuvgXLFigBgwYkCGemTNnqhdffPG2P4vHHntM/frrr5m+Dg0NVT/++KNSSqnr16+runXrqosXLyqllJowYYL68MMPld1uV+3bt1e7d+9WSimVkJCg2rVrp7Zv357hXDd+JkopNXnyZPX8888rm82mdF1Xr7/+uho5cqTrPk6bNi3TeDdt2qRq1qypHnroIdW+fXvVoEED1aVLF/Xpp58qm82mlFLq5ZdfVps2bVJKKZWYmKjq16+vdu3apU6dOqVCQ0PVypUrlVJKLV26VDVr1kwppdSYMWPUsGHDlGEY6sqVK6pJkyZqypQpym63q5YtW6ply5YppZQ6f/68ioqKUtu2bVObNm1S1apVU3v27FFKKfXUU0+pnj17KqvVqq5cuaIeeOABdf78ede97Nixo3rooYdc/y5fvqzi4uJUw4YN1Y4dO5RSSh08eFBFRESokydP/qPfg759+6rFixcrpZTat2+fGjVqlFJKpXtvLF26VHXt2vW274cbP6PExETVo0cPFRcXp5RSavv27a7f2WnTprl+VklJSWrw4MEqISHhlttvjmHKlCnqnXfeyRDb66+/rmJiYpRSSjkcDjV06FD12Wefue7djfehyH6kxi5cUlNT6dy5M+BsSi1YsCATJ06kRIkSgPOZ5I1axerVqzlx4gS9evVyfX9CQgLXrl3jjz/+4I033sBsNmM2m5k9ezYAP/74I+BsCahatSoPP/wwTZo0oUmTJjRs2DBdLGvXruWRRx4hICAAgL59+zJjxgxsNhsAzZs3x2QyERQURLly5YiPj7/ldd2oUZw6dYonnniCatWqUaZMmbu+jnr16rFhwwY+//xzjh8/zsWLF0lOTs7SPTaZTKh/OYtz3bp1AQgKCqJ169b8/PPP9OvXj0WLFvHtt99y/PhxTp48ma5mmpqayt69ewkLC7vlcdeuXcvLL7+Mj48P4GwpGDRoUIbzZubmpvgFCxYwadIk2rVr5zrW+PHjWbt2LTNmzODo0aNYrVaSk5MpUKAAPj4+NG3aFIDq1atz7do1ADZu3Mjw4cPRNI3g4GBXK8Hx48exWq20adMGcL6f2rRpw7p166hfvz6lS5emevXqrrjy5s2Lr68vwcHBBAYGEh8fT7FixYDMm+LXrFlD2bJlqV27NgCVK1cmPDycP//8E03Tsvx70K5dO0aPHs3KlStp1KgRQ4YMyXDfTCaTq0Z/J4GBgcyYMYM1a9Zw/Phx9u/f73rfRUVFMWDAAM6dO0ejRo145ZVXyJs37y23Z8Xq1avZtWsX8+fPB5zvoZvd7v0gPEsSu3D5+zP2v7uRZAEMw6Bz5868+uqrrtcXL14kf/78WCyWdJ3Azp07l65TlslkYvbs2ezatYuNGzcyduxYoqKiGDZsWLrj33wMwzBwOBzpYr1B0zSUUsyZM4f//ve/QOadoMqUKcOECRPo27cvtWvXplatWnd1He+88w66rtOuXTuaNWvGuXPnspysa9euzTfffIOu666meHB2qJo1a5brmerNx7Pb7emOcfPPoUePHq6m34oVK1KmTBkOHDhA3rx50/0sL1++fMc/6Jnd85vPffN5b6dr167s3LmTl156iXnz5mGxWHjssceoUqUKUVFRtGvXjp07d7qu0cfHx/UY5e+dB2++Dzful67rmZa78f7w9fVNt89i+Wd/5m53fB8fnyz/HvTq1YvmzZuzYcMG1q1bx7Rp01i6dGm649aqVYujR4+SmJjo+rAAzv4tI0eOZMqUKa5t58+fp2fPnvTo0YM6derQtm1bVq1a5TrOjQ5xmzZtonv37nz++ee33J4VhmEwefJkKlasCDg/sNx8X7L6fhD3nwx3E3clMjKSJUuWcPHiRQDmzJnD448/DkDDhg358ccfMQwDm83Giy++yJYtW1zfu3//fjp27EjFihUZOHAg/fr1Y9euXemOHxUVxYIFC1w1klmzZlGvXr0Mf7Rv1rt3b3766Sd++umnW3YECg8Pp0uXLowaNQrDMO7qOtavX8+gQYNo3749ADt37kTX9SzdtwcffJAKFSowbtw4rFYr4Ey67733HqVLlwYgODiY3bt3A86OVgcOHLjl8W7UwD/++GO6d+8OQEhISLoPaefOnaNjx46uY95KVFQUc+bMwW63YxgG3377LY0bN87Sdf3d0KFDOXfuHN9++y0JCQns2rWLoUOH0qZNG86fP8/JkyfvWFONiopi/vz5GIZBfHw8K1asAKBChQpYLBZ+++03wJkEly1bRqNGje4q1r8LCwvj6NGj/PXXX4Dzef6WLVuIiIjIUPZ2759evXqxb98+HnnkEd59910SEhK4dOkSZrPZ9SGkWLFidOrUieHDh5OYmAg4+yeMGjWKAgUKpPsAu3v3boKDg3nuueeIjIx0JXVd1/nggw+YPn06rVq1YsSIEVSqVIlDhw7dcntWREZG8vXXX6OUwmaz8eyzz7parUT2JjV2cVciIyN5+umnefLJJ9E0jaCgIKZN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\n",
      "text/plain": [
       "<Figure size 576x396 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_model(tuned_rf, plot = 'pr')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "_r9rwEw7EQrz"
   },
   "source": [
    "### 10.3 Feature Importance Plot"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 17,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "nVScSxJ-EQr2",
    "outputId": "f44f4b08-b749-4d0e-dcc9-d7e3dc6240c8"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 576x360 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_model(tuned_rf, plot='feature')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "FfWC3NEhEQr9"
   },
   "source": [
    "### 10.4 Confusion Matrix"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 18,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "OAB5mes-EQsA",
    "outputId": "bd82130d-2cc3-4b63-df5d-03b7aa54bf52"
   },
   "outputs": [
    {
     "data": {
      "image/png": "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/Y89amSbPw99HzlyRD179lT9+vXl5uYmSerWrZv27t2r+fPn6/fff9eJEydUo0YN27x/HpL08PCQm5ubrly5oh07dujJJ59UgQIFJElt27ZVRESEJGnbtm1avHixLBaLXFxc1LFjRy1YsEA9e/aUJD311FOSpNKlS8vb21seHh6SJC8vL125csU2bkaHvhMTE7V//3598sknkqSCBQuqTZs22rZtm2rUqCEnJyfVrFlT0q093PPnz+vVV1+1zW+xWPTTTz+pSZMm6tmzp86ePauGDRtqwIABKliwoN34Dg63LhuxWq3/ahtPmDBB27Zt04cffqhff/1VSUlJSkxMVKVKleTo6Kh27dqpcePGeuqpp1S9enVdvXo1w/aYmJgsx9qyZYuioqLUtm1bW403btyw9f/f//1fhvM5ODj847norLavs7OzmjVrJkmqUqWKLl++/K+2zZ8y2+7ZMb6bm5uqV6+uLVu2qFmzZtq7d69Gjx5t6/f09FR4eLjWrFmjkydP6tChQ0pISMhwWbe/rm6XL18+TZs2Te3bt1dQUJCCgoLuaHvg/sPFZMh2VatW1dChQzVkyBBbIEyaNEkzZsxQkSJF1KFDBzVq1MjuzdzV1dX2t8VisfXdPs2fh1GlW6FhsVjsnqemptqeOzs7Z/j3v2G1WtMFze3Ld3FxkZPTrc+8aWlpKl++vFatWmV7LFmyRI0bN1b16tW1efNmdejQQadPn1a7du10+PBhu+UWLlxYZcuW1aFDh9LV8frrr+vYsWN2bZ07d9bWrVtVrlw5vfrqq3J3d5dhGCpUqJBWrVqlwYMHy9HRUf369dOiRYsybf+326FHjx629Vq2bJkWL15s68/s9EGNGjUUFRWltLQ0u/Yff/xRAwcOzHL7Ojs72z7A3P5vfLvbXyOSlJKSYvs7q+1+L8a/XUhIiFavXq2NGzfK39/f9tqQpCNHjqhDhw66fv26GjVqpB49emS6nNtfV3/322+/6ZFHHlF0dHS60yF48BDUyBEBAQGqXr263n33XUnS999/r27duikkJERubm7avn17ujfyv2vatKnWr1+vq1evymq1atWqVba+xo0bKzIyUoZhKDk5WUuXLlXDhg3vSe0FChRQjRo1bIF27do1rVy5MsPl16xZUydPntSePXsk3brg6amnnlJcXJwmT56s2bNn64knntDbb7+t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\n",
      "text/plain": [
       "<Figure size 576x396 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plot_model(tuned_rf, plot = 'confusion_matrix')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "deClKJrbEQsJ"
   },
   "source": [
    "*Another* way to analyze the performance of models is to use the `evaluate_model()` function which displays a user interface for all of the available plots for a given model. It internally uses the `plot_model()` function. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 19,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 436,
     "referenced_widgets": [
      "42d5400d235d40b78190016ef0dabe11",
      "41031579127f4a53b58957e601465083",
      "12bf8b3c6ae8444a900474912589fdf1",
      "9bb3600d38c04691b444ff375ad5e3f5",
      "8886001bc7c1463ba58a8453f5c55073",
      "0a06fb091bd94ce6b6ab892e2c6faadf",
      "3cc1e83b91f34b289c7d52003f20a97a",
      "8d709ec9ec484944b1f9773748857f84",
      "8399e21b17634116861a5abaa9c0ccf7",
      "d5b6fce1763b4b54898ff3397b0f5bb0",
      "57b94ac505d142769b79de2f1e5c1166",
      "2a81017413ca4fe789c2272a5831a069",
      "02771b4dc3284414ab05df1906f4556b",
      "9e338844e75b4e17be8483529f5f38fd",
      "22588a12c0db4067982e62ebbe7e6930"
     ]
    },
    "colab_type": "code",
    "id": "OcLV1Ln6EQsN",
    "outputId": "7b5b8b4e-8d4a-4371-9a4f-cabb0a96265a"
   },
   "outputs": [
    {
     "data": {
      "application/vnd.jupyter.widget-view+json": {
       "model_id": "2b812fb96ca64be59cdb7c957fd12b06",
       "version_major": 2,
       "version_minor": 0
      },
      "text/plain": [
       "interactive(children=(ToggleButtons(description='Plot Type:', icons=('',), options=(('Hyperparameters', 'param…"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "evaluate_model(tuned_rf)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "RX5pYUJJEQsV"
   },
   "source": [
    "# 11.0 Predict on test / hold-out Sample"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "mFSvRYiaEQsd"
   },
   "source": [
    "Before finalizing the model, it is advisable to perform one final check by predicting the test/hold-out set and reviewing the evaluation metrics. If you look at the information grid in Section 6 above, you will see that 30% (6,841 samples) of the data has been separated out as test/hold-out sample. All of the evaluation metrics we have seen above are cross validated results based on the training set (70%) only. Now, using our final trained model stored in the `tuned_rf` variable we will predict against the hold-out sample and evaluate the metrics to see if they are materially different than the CV results."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 20,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "nwaZk6oTEQsi",
    "outputId": "d30c8533-d347-4fa6-f18e-5b2abc937bec"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Model</th>\n",
       "      <th>Accuracy</th>\n",
       "      <th>AUC</th>\n",
       "      <th>Recall</th>\n",
       "      <th>Prec.</th>\n",
       "      <th>F1</th>\n",
       "      <th>Kappa</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Random Forest Classifier</td>\n",
       "      <td>0.8126</td>\n",
       "      <td>0.7538</td>\n",
       "      <td>0.3212</td>\n",
       "      <td>0.6559</td>\n",
       "      <td>0.4312</td>\n",
       "      <td>0.3345</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                      Model  Accuracy     AUC  Recall   Prec.      F1   Kappa\n",
       "0  Random Forest Classifier    0.8126  0.7538  0.3212  0.6559  0.4312  0.3345"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "predict_model(tuned_rf);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "E-fHsX2AEQsx"
   },
   "source": [
    "The accuracy on test/hold-out set is **`0.8126`** compared to **`0.8229`** achieved on the `tuned_rf` CV results (in section 9.3 above). This is not a significant difference. If there is a large variation between the test/hold-out and CV results, then this would normally indicate over-fitting but could also be due to several other factors and would require further investigation. In this case, we will move forward with finalizing the model and predicting on unseen data (the 5% that we had separated in the beginning and never exposed to PyCaret).\n",
    "\n",
    "(TIP : It's always good to look at the standard deviation of CV results when using `create_model()`.)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "r79BGjIfEQs1"
   },
   "source": [
    "# 12.0 Finalize Model for Deployment"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "B-6xJ9kQEQs7"
   },
   "source": [
    "Model finalization is the last step in the experiment. A normal machine learning workflow in PyCaret starts with `setup()`, followed by comparing all models using `compare_models()` and shortlisting a few candidate models (based on the metric of interest) to perform several modeling techniques such as hyperparameter tuning, ensembling, stacking etc. This workflow will eventually lead you to the best model for use in making predictions on new and unseen data. The `finalize_model()` function fits the model onto the complete dataset including the test/hold-out sample (30% in this case). The purpose of this function is to train the model on the complete dataset before it is deployed in production."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 21,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "_--tO4KGEQs-"
   },
   "outputs": [],
   "source": [
    "final_rf = finalize_model(tuned_rf)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 22,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 147
    },
    "colab_type": "code",
    "id": "U9W6kXsSEQtQ",
    "outputId": "794b24a4-9c95-4730-eddd-f82e4925b866"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "RandomForestClassifier(bootstrap=True, ccp_alpha=0.0, class_weight=None,\n",
      "                       criterion='gini', max_depth=10, max_features='auto',\n",
      "                       max_leaf_nodes=None, max_samples=None,\n",
      "                       min_impurity_decrease=0.0, min_impurity_split=None,\n",
      "                       min_samples_leaf=2, min_samples_split=10,\n",
      "                       min_weight_fraction_leaf=0.0, n_estimators=70,\n",
      "                       n_jobs=None, oob_score=False, random_state=123,\n",
      "                       verbose=0, warm_start=False)\n"
     ]
    }
   ],
   "source": [
    "#Final Random Forest model parameters for deployment\n",
    "print(final_rf)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "kgdOjxypEQtd"
   },
   "source": [
    "**Caution:** One final word of caution. Once the model is finalized using `finalize_model()`, the entire dataset including the test/hold-out set is used for training. As such, if the model is used for predictions on the hold-out set after `finalize_model()` is used, the information grid printed will be misleading as you are trying to predict on the same data that was used for modeling. In order to demonstrate this point only, we will use `final_rf` under `predict_model()` to compare the information grid with the one above in section 11. "
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 23,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "NJDk3I-EEQtg",
    "outputId": "4d75663a-e86f-4826-c8e4-c9aa722648df"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>Model</th>\n",
       "      <th>Accuracy</th>\n",
       "      <th>AUC</th>\n",
       "      <th>Recall</th>\n",
       "      <th>Prec.</th>\n",
       "      <th>F1</th>\n",
       "      <th>Kappa</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>Random Forest Classifier</td>\n",
       "      <td>0.8361</td>\n",
       "      <td>0.8189</td>\n",
       "      <td>0.3681</td>\n",
       "      <td>0.7715</td>\n",
       "      <td>0.4984</td>\n",
       "      <td>0.4148</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "                      Model  Accuracy     AUC  Recall   Prec.      F1   Kappa\n",
       "0  Random Forest Classifier    0.8361  0.8189  0.3681  0.7715  0.4984  0.4148"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "predict_model(final_rf);"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "V77JC5JVEQtp"
   },
   "source": [
    "Notice how the AUC in `final_rf` has increased to **`0.8189`** from **`0.7538`**, even though the model is the same. This is because the `final_rf` variable has been trained on the complete dataset including the test/hold-out set."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "hUzc6tXNEQtr"
   },
   "source": [
    "# 13.0 Predict on unseen data"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "dx5vXjChEQtt"
   },
   "source": [
    "The `predict_model()` function is also used to predict on the unseen dataset. The only difference from section 11 above is that this time we will pass the `data_unseen` parameter. `data_unseen` is the variable created at the beginning of the tutorial and contains 5% (1200 samples) of the original dataset which was never exposed to PyCaret. (see section 5 for explanation)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 24,
   "metadata": {
    "colab": {
     "base_uri": "https://localhost:8080/",
     "height": 211
    },
    "colab_type": "code",
    "id": "0y5KWLC6EQtx",
    "outputId": "30771f87-7847-43ce-e984-9963cff7d043"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>LIMIT_BAL</th>\n",
       "      <th>SEX</th>\n",
       "      <th>EDUCATION</th>\n",
       "      <th>MARRIAGE</th>\n",
       "      <th>AGE</th>\n",
       "      <th>PAY_1</th>\n",
       "      <th>PAY_2</th>\n",
       "      <th>PAY_3</th>\n",
       "      <th>PAY_4</th>\n",
       "      <th>PAY_5</th>\n",
       "      <th>...</th>\n",
       "      <th>BILL_AMT6</th>\n",
       "      <th>PAY_AMT1</th>\n",
       "      <th>PAY_AMT2</th>\n",
       "      <th>PAY_AMT3</th>\n",
       "      <th>PAY_AMT4</th>\n",
       "      <th>PAY_AMT5</th>\n",
       "      <th>PAY_AMT6</th>\n",
       "      <th>default</th>\n",
       "      <th>Label</th>\n",
       "      <th>Score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>50000</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>48</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>8011.0</td>\n",
       "      <td>2028.0</td>\n",
       "      <td>2453.0</td>\n",
       "      <td>2329.0</td>\n",
       "      <td>431.0</td>\n",
       "      <td>300.0</td>\n",
       "      <td>500.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.1498</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>200000</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>40</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>...</td>\n",
       "      <td>89112.0</td>\n",
       "      <td>4200.0</td>\n",
       "      <td>4100.0</td>\n",
       "      <td>3000.0</td>\n",
       "      <td>3400.0</td>\n",
       "      <td>3500.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.7986</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>50000</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>44</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>...</td>\n",
       "      <td>15798.0</td>\n",
       "      <td>2100.0</td>\n",
       "      <td>1000.0</td>\n",
       "      <td>2300.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.6261</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>60000</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>31</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>30384.0</td>\n",
       "      <td>1132.0</td>\n",
       "      <td>60994.0</td>\n",
       "      <td>1436.0</td>\n",
       "      <td>1047.0</td>\n",
       "      <td>1056.0</td>\n",
       "      <td>1053.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.5063</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>120000</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>32</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>81354.0</td>\n",
       "      <td>2429.0</td>\n",
       "      <td>3120.0</td>\n",
       "      <td>3300.0</td>\n",
       "      <td>10000.0</td>\n",
       "      <td>3200.0</td>\n",
       "      <td>3200.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.1479</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 26 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   LIMIT_BAL  SEX  EDUCATION  MARRIAGE  AGE  PAY_1  PAY_2  PAY_3  PAY_4  \\\n",
       "0      50000    2          2         1   48      0      0      0      0   \n",
       "1     200000    2          1         1   40      2      2      2      2   \n",
       "2      50000    2          3         1   44      1      2      3      2   \n",
       "3      60000    2          2         1   31      2      2     -1      0   \n",
       "4     120000    2          3         2   32     -1      0      0      0   \n",
       "\n",
       "   PAY_5  ...  BILL_AMT6  PAY_AMT1  PAY_AMT2  PAY_AMT3  PAY_AMT4  PAY_AMT5  \\\n",
       "0      0  ...     8011.0    2028.0    2453.0    2329.0     431.0     300.0   \n",
       "1      2  ...    89112.0    4200.0    4100.0    3000.0    3400.0    3500.0   \n",
       "2      4  ...    15798.0    2100.0    1000.0    2300.0       0.0       0.0   \n",
       "3      0  ...    30384.0    1132.0   60994.0    1436.0    1047.0    1056.0   \n",
       "4      0  ...    81354.0    2429.0    3120.0    3300.0   10000.0    3200.0   \n",
       "\n",
       "   PAY_AMT6  default  Label   Score  \n",
       "0     500.0        0      0  0.1498  \n",
       "1       0.0        1      1  0.7986  \n",
       "2       0.0        1      1  0.6261  \n",
       "3    1053.0        1      1  0.5063  \n",
       "4    3200.0        0      0  0.1479  \n",
       "\n",
       "[5 rows x 26 columns]"
      ]
     },
     "execution_count": 24,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "unseen_predictions = predict_model(final_rf, data=data_unseen)\n",
    "unseen_predictions.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "oPYmVpugEQt5"
   },
   "source": [
    "The `Label` and `Score` columns are added onto the `data_unseen` set. Label is the prediction and score is the probability of the prediction. Notice that predicted results are concatenated to the original dataset while all the transformations are automatically performed in the background."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "L__po3sUEQt7"
   },
   "source": [
    "# 14.0 Saving the model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "1sQPT7jrEQt-"
   },
   "source": [
    "We have now finished the experiment by finalizing the `tuned_rf` model which is now stored in `final_rf` variable. We have also used the model stored in `final_rf` to predict `data_unseen`. This brings us to the end of our experiment, but one question is still to be asked: What happens when you have more new data to predict? Do you have to go through the entire experiment again? The answer is no, PyCaret's inbuilt function `save_model()` allows you to save the model along with entire transformation pipeline for later use."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 25,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "ln1YWIXTEQuA",
    "outputId": "d3cb0652-f72e-44e8-9455-824b12740bff"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Transformation Pipeline and Model Succesfully Saved\n"
     ]
    }
   ],
   "source": [
    "save_model(final_rf,'Final RF Model 08Feb2020')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "WE6f48AYEQuR"
   },
   "source": [
    "(TIP : It's always good to use date in the filename when saving models, it's good for version control.)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "Z8OBesfkEQuU"
   },
   "source": [
    "# 15.0 Loading the saved model"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "V2K_WLaaEQuW"
   },
   "source": [
    "To load a saved model at a future date in the same or an alternative environment, we would use PyCaret's `load_model()` function and then easily apply the saved model on new unseen data for prediction."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 26,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "Siw_2EIUEQub",
    "outputId": "5da8b7c9-01f7-469c-f0c9-b19c8ce11bcc"
   },
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "Transformation Pipeline and Model Sucessfully Loaded\n"
     ]
    }
   ],
   "source": [
    "saved_final_rf = load_model('Final RF Model 08Feb2020')"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "1zyi6-Q-EQuq"
   },
   "source": [
    "Once the model is loaded in the environment, you can simply use it to predict on any new data using the same `predict_model()` function. Below we have applied the loaded model to predict the same `data_unseen` that we used in section 13 above."
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 27,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "HMPO1ka9EQut"
   },
   "outputs": [],
   "source": [
    "new_prediction = predict_model(saved_final_rf, data=data_unseen)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 28,
   "metadata": {
    "colab": {},
    "colab_type": "code",
    "id": "7wyDQQSzEQu8",
    "outputId": "23065436-42e3-4441-ed58-a8863f8971f9"
   },
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>LIMIT_BAL</th>\n",
       "      <th>SEX</th>\n",
       "      <th>EDUCATION</th>\n",
       "      <th>MARRIAGE</th>\n",
       "      <th>AGE</th>\n",
       "      <th>PAY_1</th>\n",
       "      <th>PAY_2</th>\n",
       "      <th>PAY_3</th>\n",
       "      <th>PAY_4</th>\n",
       "      <th>PAY_5</th>\n",
       "      <th>...</th>\n",
       "      <th>BILL_AMT6</th>\n",
       "      <th>PAY_AMT1</th>\n",
       "      <th>PAY_AMT2</th>\n",
       "      <th>PAY_AMT3</th>\n",
       "      <th>PAY_AMT4</th>\n",
       "      <th>PAY_AMT5</th>\n",
       "      <th>PAY_AMT6</th>\n",
       "      <th>default</th>\n",
       "      <th>Label</th>\n",
       "      <th>Score</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>50000</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>48</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>8011.0</td>\n",
       "      <td>2028.0</td>\n",
       "      <td>2453.0</td>\n",
       "      <td>2329.0</td>\n",
       "      <td>431.0</td>\n",
       "      <td>300.0</td>\n",
       "      <td>500.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.1498</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>200000</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>40</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>...</td>\n",
       "      <td>89112.0</td>\n",
       "      <td>4200.0</td>\n",
       "      <td>4100.0</td>\n",
       "      <td>3000.0</td>\n",
       "      <td>3400.0</td>\n",
       "      <td>3500.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.7986</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>50000</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>1</td>\n",
       "      <td>44</td>\n",
       "      <td>1</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>4</td>\n",
       "      <td>...</td>\n",
       "      <td>15798.0</td>\n",
       "      <td>2100.0</td>\n",
       "      <td>1000.0</td>\n",
       "      <td>2300.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>0.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.6261</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>60000</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>1</td>\n",
       "      <td>31</td>\n",
       "      <td>2</td>\n",
       "      <td>2</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>30384.0</td>\n",
       "      <td>1132.0</td>\n",
       "      <td>60994.0</td>\n",
       "      <td>1436.0</td>\n",
       "      <td>1047.0</td>\n",
       "      <td>1056.0</td>\n",
       "      <td>1053.0</td>\n",
       "      <td>1</td>\n",
       "      <td>1</td>\n",
       "      <td>0.5063</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>120000</td>\n",
       "      <td>2</td>\n",
       "      <td>3</td>\n",
       "      <td>2</td>\n",
       "      <td>32</td>\n",
       "      <td>-1</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>...</td>\n",
       "      <td>81354.0</td>\n",
       "      <td>2429.0</td>\n",
       "      <td>3120.0</td>\n",
       "      <td>3300.0</td>\n",
       "      <td>10000.0</td>\n",
       "      <td>3200.0</td>\n",
       "      <td>3200.0</td>\n",
       "      <td>0</td>\n",
       "      <td>0</td>\n",
       "      <td>0.1479</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "<p>5 rows × 26 columns</p>\n",
       "</div>"
      ],
      "text/plain": [
       "   LIMIT_BAL  SEX  EDUCATION  MARRIAGE  AGE  PAY_1  PAY_2  PAY_3  PAY_4  \\\n",
       "0      50000    2          2         1   48      0      0      0      0   \n",
       "1     200000    2          1         1   40      2      2      2      2   \n",
       "2      50000    2          3         1   44      1      2      3      2   \n",
       "3      60000    2          2         1   31      2      2     -1      0   \n",
       "4     120000    2          3         2   32     -1      0      0      0   \n",
       "\n",
       "   PAY_5  ...  BILL_AMT6  PAY_AMT1  PAY_AMT2  PAY_AMT3  PAY_AMT4  PAY_AMT5  \\\n",
       "0      0  ...     8011.0    2028.0    2453.0    2329.0     431.0     300.0   \n",
       "1      2  ...    89112.0    4200.0    4100.0    3000.0    3400.0    3500.0   \n",
       "2      4  ...    15798.0    2100.0    1000.0    2300.0       0.0       0.0   \n",
       "3      0  ...    30384.0    1132.0   60994.0    1436.0    1047.0    1056.0   \n",
       "4      0  ...    81354.0    2429.0    3120.0    3300.0   10000.0    3200.0   \n",
       "\n",
       "   PAY_AMT6  default  Label   Score  \n",
       "0     500.0        0      0  0.1498  \n",
       "1       0.0        1      1  0.7986  \n",
       "2       0.0        1      1  0.6261  \n",
       "3    1053.0        1      1  0.5063  \n",
       "4    3200.0        0      0  0.1479  \n",
       "\n",
       "[5 rows x 26 columns]"
      ]
     },
     "execution_count": 28,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "new_prediction.head()"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "bf8I1uqcEQvD"
   },
   "source": [
    "Notice that the results of `unseen_predictions` and `new_prediction` are identical."
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "_HeOs8BhEQvF"
   },
   "source": [
    "# 16.0 Wrap-up / Next Steps?"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {
    "colab_type": "text",
    "id": "VqG1NnwXEQvK"
   },
   "source": [
    "This tutorial has covered the entire machine learning pipeline from data ingestion, pre-processing, training the model, hyperparameter tuning, prediction and saving the model for later use. We have completed all of these steps in less than 10 commands which are naturally constructed and very intuitive to remember such as `create_model()`, `tune_model()`, `compare_models()`. Re-creating the entire experiment without PyCaret would have taken well over 100 lines of code in most libraries.\n",
    "\n",
    "We have only covered the basics of `pycaret.classification`. In following tutorials we will go deeper into advanced pre-processing, ensembling, generalized stacking and other techniques that allow you to fully customize your machine learning pipeline and are must know for any data scientist.\n",
    "\n",
    "See you at the next tutorial. Follow the link to __[Binary Classification Tutorial (CLF102) - Intermediate Level](https://github.com/pycaret/pycaret/blob/master/Tutorials/Binary%20Classification%20Tutorial%20Level%20Intermediate%20-%20CLF102.ipynb)__"
   ]
  }
 ],
 "metadata": {
  "colab": {
   "collapsed_sections": [
    "Ui_rALqYEQmv",
    "y9s9wNcjEQn0",
    "it_nJo1IEQob",
    "P5m2pciOEQo4",
    "UWMSeyNhEQo-",
    "rWUojqBCEQpb",
    "nSg3OUjuEQpu",
    "XvpjzbGQEQqB",
    "BQlMCxrUEQqG",
    "CD-f0delEQqq",
    "KO3zIfs-EQrA",
    "w_P46O0jEQrT",
    "euqkQYJaEQrY",
    "bwyoTUDQEQrm",
    "_r9rwEw7EQrz",
    "FfWC3NEhEQr9",
    "RX5pYUJJEQsV",
    "r79BGjIfEQs1",
    "hUzc6tXNEQtr",
    "L__po3sUEQt7",
    "Z8OBesfkEQuU",
    "_HeOs8BhEQvF"
   ],
   "name": "Binary Classification Tutorial (CLF101) - Level Beginner (ACN_EDITS).ipynb",
   "provenance": []
  },
  "kernelspec": {
   "display_name": "Python 3",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.7.4"
  },
  "widgets": {
   "application/vnd.jupyter.widget-state+json": {
    "02771b4dc3284414ab05df1906f4556b": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "IntProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "IntProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "",
      "description": "Processing: ",
      "description_tooltip": null,
      "layout": "IPY_MODEL_22588a12c0db4067982e62ebbe7e6930",
      "max": 5,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_9e338844e75b4e17be8483529f5f38fd",
      "value": 5
     }
    },
    "0a06fb091bd94ce6b6ab892e2c6faadf": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "12bf8b3c6ae8444a900474912589fdf1": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ToggleButtonsModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ToggleButtonsModel",
      "_options_labels": [
       "Hyperparameters",
       "AUC",
       "Confusion Matrix",
       "Threshold",
       "Precision Recall",
       "Error",
       "Class Report",
       "Feature Selection",
       "Learning Curve",
       "Manifold Learning",
       "Calibration Curve",
       "Validation Curve",
       "Dimensions",
       "Feature Importance",
       "Decision Boundary"
      ],
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ToggleButtonsView",
      "button_style": "",
      "description": "Plot Type:",
      "description_tooltip": null,
      "disabled": false,
      "icons": [
       ""
      ],
      "index": 2,
      "layout": "IPY_MODEL_0a06fb091bd94ce6b6ab892e2c6faadf",
      "style": "IPY_MODEL_8886001bc7c1463ba58a8453f5c55073",
      "tooltips": []
     }
    },
    "22588a12c0db4067982e62ebbe7e6930": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "2a81017413ca4fe789c2272a5831a069": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "3cc1e83b91f34b289c7d52003f20a97a": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "IntProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "IntProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "",
      "description": "Processing: ",
      "description_tooltip": null,
      "layout": "IPY_MODEL_8399e21b17634116861a5abaa9c0ccf7",
      "max": 5,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_8d709ec9ec484944b1f9773748857f84",
      "value": 2
     }
    },
    "41031579127f4a53b58957e601465083": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "42d5400d235d40b78190016ef0dabe11": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "VBoxModel",
     "state": {
      "_dom_classes": [
       "widget-interact"
      ],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "VBoxModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "VBoxView",
      "box_style": "",
      "children": [
       "IPY_MODEL_12bf8b3c6ae8444a900474912589fdf1",
       "IPY_MODEL_9bb3600d38c04691b444ff375ad5e3f5"
      ],
      "layout": "IPY_MODEL_41031579127f4a53b58957e601465083"
     }
    },
    "57b94ac505d142769b79de2f1e5c1166": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "8399e21b17634116861a5abaa9c0ccf7": {
     "model_module": "@jupyter-widgets/base",
     "model_name": "LayoutModel",
     "state": {
      "_model_module": "@jupyter-widgets/base",
      "_model_module_version": "1.2.0",
      "_model_name": "LayoutModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "LayoutView",
      "align_content": null,
      "align_items": null,
      "align_self": null,
      "border": null,
      "bottom": null,
      "display": null,
      "flex": null,
      "flex_flow": null,
      "grid_area": null,
      "grid_auto_columns": null,
      "grid_auto_flow": null,
      "grid_auto_rows": null,
      "grid_column": null,
      "grid_gap": null,
      "grid_row": null,
      "grid_template_areas": null,
      "grid_template_columns": null,
      "grid_template_rows": null,
      "height": null,
      "justify_content": null,
      "justify_items": null,
      "left": null,
      "margin": null,
      "max_height": null,
      "max_width": null,
      "min_height": null,
      "min_width": null,
      "object_fit": null,
      "object_position": null,
      "order": null,
      "overflow": null,
      "overflow_x": null,
      "overflow_y": null,
      "padding": null,
      "right": null,
      "top": null,
      "visibility": null,
      "width": null
     }
    },
    "8886001bc7c1463ba58a8453f5c55073": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ToggleButtonsStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ToggleButtonsStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "button_width": "",
      "description_width": "",
      "font_weight": ""
     }
    },
    "8d709ec9ec484944b1f9773748857f84": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "9bb3600d38c04691b444ff375ad5e3f5": {
     "model_module": "@jupyter-widgets/output",
     "model_name": "OutputModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/output",
      "_model_module_version": "1.0.0",
      "_model_name": "OutputModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/output",
      "_view_module_version": "1.0.0",
      "_view_name": "OutputView",
      "layout": "IPY_MODEL_4f8f81ab97b041a58a53c85a1ab97bd4",
      "msg_id": "",
      "outputs": [
       {
        "image/png": "iVBORw0KGgoAAAANSUhEUgAAAeoAAAFlCAYAAAAki6s3AAAABHNCSVQICAgIfAhkiAAAAAlwSFlz\nAAALEgAACxIB0t1+/AAAADh0RVh0U29mdHdhcmUAbWF0cGxvdGxpYiB2ZXJzaW9uMy4xLjMsIGh0\ndHA6Ly9tYXRwbG90bGliLm9yZy+AADFEAAAgAElEQVR4nO3dd3hO9//H8VciS5BIqKhoG0U0RBBa\nas8mUqNWoyqtUVojdCBWqVGqWpRSnd+qWatGkdpVpRQxW3ztmSKR0TQyz+8PP/fXLSKquZOjno/r\nynXlfD7nfM77nPvmdZ9xn9gZhmEIAACYkn1+FwAAALJHUAMAYGIENQAAJkZQAwBgYgQ1AAAmRlAD\nAGBiBDVsokKFCmrWrJmCg4MVHBysZs2aaejQofrrr79ybR3R0dGqUKFCro03ePBg1apVy1LzjZ9D\nhw7l2jqys3r1av3555+W6ePHj6tPnz5q2rSpmjVrptDQUG3atEmSdO7cOVWsWDHXaxg0aJA2btwo\nSZo0aZLq1q2rJUuWWLX/Ez/++KNCQ0MVFBSkJk2aqFevXjp+/Pg/GnPu3LmqU6eOPvnkk3taPjg4\nWFeuXPlHNdywdOlSVahQwfI63XDt2jUFBgZq8ODBOY6xb98+HT58+LZ969at05AhQ3KlVtxnDMAG\nfH19jYsXL1qmU1JSjN69exuTJk3KtXVcvHjR8PX1zbXxIiIijOnTp+faeH9HUFCQZX9FR0cbtWrV\nMubPn29kZmYahmEYe/bsMWrWrGn89NNPxtmzZw0/Pz+b1tOkSRNj27ZtuTbepk2bjDp16hi7du0y\nDMMwMjMzjQULFhhPPfWUceXKlXse96WXXjIWLlyYW2X+I0uWLDEaNGhgvPnmm1btq1evNho0aGBE\nRETkOMbbb79tLFu2zFYl4j7lkN8fFPBgcHJyUr169SxHZsnJyRoyZIh+//13paWlKSgoSBEREZKk\nsLAwNW7cWGvXrtW5c+f05JNP6sMPP5SdnZ0WL16s6dOnq3DhwmrZsqVl/MzMTH300Uf64YcfJElV\nq1bViBEj5OrqqrCwMNWrV08bNmzQ6dOnFR4ervj4eK1YsUL29vb69NNP9cgjj9yx/pzGDwwM1Nq1\na/Xuu++qXLlyGjNmjPbv36/09HT17t1b7dq1kyRNnjxZkZGRkiQvLy9NnDhRU6ZM0cmTJxUWFqbx\n48drw4YNql27tjp27GhZf7Vq1TRjxgyVLFlSmZmZVnWNGTNG27ZtU1pamqpXr65x48bJ0dFRO3fu\n1Pjx45WSkiLDMNSvXz81b9482/awsDC1b99eW7Zs0cWLFzV06FD16tVLK1euVPv27dW6dWvt3r1b\n48aNU0JCgjw8PPThhx/qkUce0dKlS7Vx40YlJiaqUqVKGjRokNX+mzZtmsLDw1W9enVJkp2dnUJD\nQ+Xl5SVnZ2dJ0jfffKMFCxYoMzNTZcqU0bvvvitPT08NHjxYpUqVUlRUlE6dOiUfHx/NmDFD06ZN\n0969e3X8+HFFR0fr/PnzevTRR9W7d29J18+Q3JieM2eO5s6dK8MwVLhwYY0fP17ly5dXhQoV9OOP\nP6pkyZJ/e/0FCxbM8j4JDAzUjh07lJycbOlfvXq16tSpo4yMjDu+9+fPn6/ly5dr48aNio2Nlbu7\nu9U+LVeunFasWKGPP/5YLVq00Mcffyx/f3/t3r1bAwcO1Pfffy9XV9c7vo9xn8rnDwr4l7r1iDou\nLs548cUXjRkzZhiGYRhffvml8corrxiZmZlGXFyc8dRTTxm//vqrYRiG0blzZ6Nz585GcnKykZSU\nZDz99NPGrl27jLi4OKNq1arGsWPHDMMwjDFjxliOqL///nvjueeeM5KSkoz09HSjV69elqPjzp07\nG6+88oqRlpZmbNy40ahSpYqxZMkSwzAMIzw83Jg8ebJhGHc+os5p/G7duhkZGRmGYRjGkCFDjEGD\nBhkZGRlGTEyM0aBBA+PIkSPG0aNHjWeeecZITU01DMMwvvnmG+O7777Lsr/atWtnLF++PNt9e/MR\ndWRkpNGiRQsjNTXVuHbtmtG8eXPLEVnbtm2NHTt2GIZhGCdPnrQc6WXX3rlzZ8uyjRo1sno9li1b\nZiQmJhpPPvmksXXrVsMwDGPlypVGmzZtDMO4fjRZtWpV4+TJk1nqTUpKMipUqGBER0dnu01RUVFG\n/fr1LUfXo0ePNoYOHWoYxvXXpXnz5sbVq1eNtLQ0o1WrVpb9c3PNt75+N6YTExONGjVqGImJiYZh\nXD/C/eyzz6z2+72u/2ZLliwxIiIijAEDBhgrV640DMMwEhMTjSZNmhiLFi2yHFHn9N6/sT237tMl\nS5YYL7/8smEYhrF27VojNDTUSE9PN9q0aWNs3rw5232L+x/XqGEzYWFhCg4OVpMmTdSkSRPVqlVL\nPXr0kCR169ZNM2bMkJ2dndzd3VW+fHmdO3fOsmxwcLBcXFzk6uoqHx8fXbx4Ufv27dNjjz2msmXL\nSpKee+45y/ybN2/Wc889J1dXVxUoUEBt27bVzz//bOlv1KiRHBwc5Ovrq+TkZAUFBUmSfH19denS\nJct833zzTZZr1LGxsTmO36BBA9nbX//ntGnTJr300kuyt7eXp6enmjVrprVr18rNzU2xsbFauXKl\n4uPjFRYWZrUNN8THx6t48eJ3tY+DgoK0ZMkSOTo6ytnZWZUrV9bZs2clScWKFdOyZct0/Phx+fj4\n6MMPP7xje052794tLy8v1alTR5LUokULnTlzRhcuXJAk+fj4yMfHJ8tyCQkJMgxDxYoVy3bszZs3\nKygoyDJPhw4dsuzfokWLWl7Dixcv3lXNkuTs7Gw5G3PlyhU1b97c8j60xfqfffZZff/995Kk9evX\nq1GjRpb3hpTze/9m2e3TZs2aqVixYurTp498fHzUoEGDu94fuP8Q1LCZ2bNnKzIyUosWLZK9vb1C\nQkLk4HD9asupU6cUHh6uZ555RsHBwTp48KDVKd3ChQtbfi9QoIAyMjIUHx+vIkWKWNrd3d0tv984\nVXhzX0xMjGW6UKFClrFunra3t7da70svvaTIyEirH09PzxzHv7kvMTFRr7/+uiXo169fr6SkJHl5\neWnatGmKjIxUw4YN1bNnz9v+h+/h4aE//vgjx/17Y7sjIiIUFBSk4OBgbdiwQcb/P75/3LhxKliw\noLp27apnnnnGcso9u/acJCQk6OzZs1YfYpycnBQbG5tlH9zM3d1d9vb2d9ym2NhYubm5Wabd3Nys\n9u/Nr/uN98PdcnR01Ndff609e/YoKChInTp10pEjR2y2/jp16ujgwYOKi4vTqlWrFBISYtWf03v/\nZtntU0nq1KmTNm3apA4dOmQ7D/4dCGrYnKenp8LCwjRx4kRL2+jRo1W+fHmtWbNGkZGReuKJJ3Ic\nx83NTYmJiZbpGwEhScWLF1dcXJxlOi4u7q6PSu/G3xm/RIkSmj59uiXoN23aZLn+XqtWLX322Wf6\n+eef9fDDD+uDDz7IsnzNmjUt18JvtmHDBm3dutWqbfLkyXJwcNDKlSsVGRlpdWRVvHhxvf3229qy\nZYtGjBihIUOGKCkpKdv2nJQoUUKPP/641YeYbdu2yd/f/47LFSxYUAEBAVq7dm2Wvq+//lpnzpzJ\nldfv1g9d8fHxlt8rVqyoqVOnavv27apbt65GjhxptWxuvn8cHR3VqFEjLVu2TKdPn1a1atWs+u/l\nvX+rzMxMTZkyRd26ddPkyZOzDXr8OxDUyBNdu3ZVVFSUdu7cKUmKiYmRn5+fChQooJ9//lmnT5/O\n8atblStX1smTJ3Xq1ClJ0nfffWfpa9iwoVasWKHk5GSlp6dr8eLFuXo68O+M37hxYy1YsECSlJ6e\nrnHjxunQoUPaunWrRo0apczMTLm6uuqJJ56QnZ2dJMnBwUEJCQmSpJdfflkHDhzQZ599ZvkPePfu\n3Ro5cqRcXFys1hUTEyNfX185OTnp8OHDioqK0l9//aW0tDSFhYVZTutXqlRJDg4OyszMvG37zadm\ns1OlShVdvnxZ+/btkySdPXtWAwcOtBzB30n//v01c+ZMbdmyRZJkGIbmzZunWbNmqUiRImrYsKHW\nrVunq1evSpIWLFjwt1+/hx56yPLVprNnz2rPnj2SpCNHjqhfv35KTU2Vk5OT/P39Lfv9htxY/82e\nffZZff7552ratGmWvju99x0cHKw+jGZn3rx58vb2VkREhDw8PDR37tx7rhXmx13fyBOFCxdWz549\nNWHCBC1evFi9evXS+PHjNWPGDDVp0kR9+/bV1KlT5efnl+0Ynp6eioiIUNeuXVWoUCGrU37BwcE6\ncuSI2rZtK8MwVLNmTb300ku5Vv/fGf/111/XqFGjLNfB69WrpwoVKigjI0OrVq1SUFCQnJyc5Onp\nqXHjxlnG79ixo8aOHauQkBDNmzdP77//vpo2bSpnZ2c99NBDmjJlimrUqGF1PbNbt26KiIjQ0qVL\nVaNGDUVERGjYsGEKCAhQ+/bt1aVLF0nXjzaHDx+uIkWK3Lb9dncw38rFxUVTp07VmDFjlJSUJEdH\nR/Xv3z9L6N1O7dq1NWnSJMvyBQoUUKVKlTR37lx5eHjIw8NDPXv21IsvvqjMzEz5+fnpnXfeyXHc\nmz3//PPq27evnnnmGVWsWNHqPoTSpUurRYsWcnR0VKFChTRixAirZQMCAv7x+m/21FNPyc7OLstp\nb0l3fO83bdpUEydO1NmzZ7N9RsAff/yhTz/9VIsWLZIkDRs2TKGhoWrWrJlKlix5zzXDvOyMu/k4\nDAAA8gWnvgEAMDGCGgAAEyOoAQAwMdPdTJaZmWm5UeVublIBAOB+ZhiG0tLSVKhQodt+A8N0QZ2U\nlKSjR4/mdxkAAOQpX19fq4fr3GC6oHZ0dJQkdf9ksC4lxOQwN4DccnL2dqVkJOd3GcADJy01TaeO\nn7Hk361MF9Q3TndfSojRxauXcpgbQG5xdnaW8TcezQkgd2V3uZebyQAAMDGCGgAAEyOoAQAwMYIa\nAAATI6gBADAxghoAABMjqAEAMDGCGgAAEyOoAQAwMYIaAAATI6gBADAxghoAABMjqAEAMDGCGgAA\nEyOoAQAwMYIaAAATI6gBADAxghoAABMjqAEAMDGCGgAAEyOoAQAwMYIaAAATI6gBADAxghoAABMj\nqAEAMDGCGgAAEyOoAQAwMYIaAAATI6gBADAxghoAABMjqAEAMDGCGgAAEyOoAQAwMYIaAAATI6gB\nADAxghoAABMjqAEAMDGCGgAAEyOoAQAwMYIaAAATI6gBADAxghoAABMjqAEAMDGCGgAAEyOoAQAw\nMYIaAAATI6gBADAxghoAABMjqAEAMDGCGgAAEyOoAQAwMYIaAAATI6gBADAxghoAABMjqAEAMDGC\nGgAAEyOoAQAwMYIaAAATI6gBADAxghoAABMjqAEAMDGCGgAAEyOoAQAwMYIaAAATI6gBADAxghoA\nABMjqAEAMDGCGlmcnL1dqWtOKnnVMauf8t5lJEkdG7XW7hlrlLD8sI5+/ZPGdh0ke/vrb6XOTdtl\nWS551TFl/HBGIzq/IUlycy2imf3f0/kFu5S86phOzt6uiNA++ba9gJldunRJPbu/qjKPlFUJj5Kq\nX7uhNm3YJEkaO+pduToWVtFCnlY/o0aMliSdPnVaBR0Kyd3Vw6q/Qlm//Nwk/E0Othw8OTlZEyZM\n0JYtWxQfH69y5cqpX79+qlOnji1Xi1zQY/IgzVq7KEt7/YBamjVwsl58L1wrtq+Tr/fj+n7s10pN\nS9PoOZM1Z/0SzVm/xGoZf58ntHXKUs3ftEyStGDYDLk4OatmeEtdiPlDTQPrafmoLxWbGKfPV8/N\nk+0D7hcd2oTKza2Itv/6s4oWLap3R49Th7ah2v/7PklS3Xp1tXZj5B3H2P/bXj3m81helAsbsOkR\n9ejRoxUVFaUvv/xS27ZtU5s2bfTaa6/pxIkTtlwtbCi8dVet3rlRi7esUmpaqg6eOqxJSz5X+HNd\nZWdnl2X+AvYF9J+BH+rdedP03/MnJUnzNy1Tj8mDdO7yRWVmZmrtrh/1+5ljqlq2Yl5vDmBq8fHx\n8qv4hCZOel8lS5aUi4uL3hr0ppKSkvTrzl/zuzzkEZsFdXx8vFauXKnw8HCVKVNGzs7O6tixo8qW\nLasFCxbYarXIJc83aKlDX2xU3LLftGv6arV6+hlJUi2/QO08stdq3p2Ho1Tc3dNyavxmvVq+JFfn\ngvpw8aeWttnrl+j4hVOSJBcnF3Vq3EblSvloweYVttsg4D7k7u6umZ9/oif8nrC0nTxx/QNv6dKl\nJUnnz5/Xs0Et5F3iET1RrqIGDxyi5ORkq3HeHjZCvo8/Ie8Sj6hl81b67dBvebcR+MdsFtSHDh1S\nWlqaKleubNUeEBCgffv22Wq1yAX7T/6uw2eOqcFb7fVIp6e09Oc1+u6dL1TTL1APuXsqNjHOav4r\nCVclSSWKFrdqL1ywkN5+sb/e/voDZWZmZlnPD+/NVfKqY3q/xzB1Gt9XPx3YYbuNAv4FEhIS9Oor\nr6lFqxaqXiNQD5d6WI8/Xkaj3x2tU+dP6IuvPtO3879VxIDBkiQnZycF1ghUg4YNtO9QlHZG7VBB\nV1c9G9RC8fHx+bw1uFs2C+rY2FhJUtGiRa3aPTw8FBMTY6vVIhe0HtFNb306WlfiY5X4158aN2+a\n9h4/pB7NO91xOcMwrKZffbazYhKvaunW1bedP2jwi3JtUU5vzhylbwZN0fMNWubaNgD/NqdPn1Hj\n+k300EMP6evZX0mSuvfoppVrVqh6jUA5Ojqqbv26GhAxQN98PVvp6el6+OGH9fMvP6l7j24qWLCg\nvL1L6dMvPtGlS5e1auWqfN4i3K18uev7dtcyYW7HLpySd/GS+iPuioq5eVj1Ff//6eirl63aOzdt\nq4U/fn/HcZNTrmnhjyv1zfoligjtnbtFA/8Su37drfpP11edunW07PvvVKhQoWznLVv2caWkpOjK\nlSu37ffw8FCxYp46f/6CrcpFLrNZUBcrVkySFBdnfZr06tWrKl68+O0WgQn4lHxEH4ePlXshN6t2\nv0fL69iFU9p2aJdqPRFo1VfX/yldiIm2XHeWpPLeZVS1bCUt+9n6blQvj4d0cvZ21atc06rd2dFJ\n6RkZubsxwL/AoYOH1PrZ5zQgYoA++niKHB0dLX0Txr2vNaus/40dPnxEhQsXlpeXlzau36jRI8dY\n9V++fFlXrsSobLmyeVI//jmbBbW/v7+cnJy0d6/1jUd79uxRjRo1bLVa/EN/XL2s1k8HaUa/cfIs\nUlSuLgX1dufX5etdRtOWfaUp332poBoN9HyDlnJydFJ13wC91b6nJi3+3GqcWn6BSktP08FTR7KM\nf+qPc5rYY7jKlvKRvb29GlaprU6NntOiLXc++gYeNBkZGerRrae6du+i8P59s/THxMSob+9w7d61\nR+np6dq6ZasmfzBZ/V4Pl52dnYp6eGjihA80dco0Xbt2TdHR0erds4/KliurZ1uE5P0G4Z7Y7HvU\nRYoUUbt27TRt2jT5+vqqZMmSmjdvns6fP6+OHTvaarX4h5JTrqnZ4Bc04ZWhOvzVjyrk4qo9xw6o\nwYAOOnru+tfqOo7ro9EvvaVvBk3RH3FXNHXZV1Z3dUtSqWIldTUxXukZ6VnW0W5UD43rNljbP1qu\nQi6uOnPpvMbM/SjLGMCD7pftOxS1Z68OHfxNH0+dbtXXqfMLmjJtsgoWLKjOL4Tp4oWL8irppTcG\nvGEJ9cDq1bRo6bcaN/Y9vTt6nCTpmeBnFLl+jZydnfN8e3Bv7Ixb7wDKRampqXr//fe1atUqJSUl\nyc/PT4MGDVL16tWzXSYlJUUHDx5Uywk9dPHqJVuVBuAWxrpzupbxV36XATxwUlNS9d/fj8vf3/+2\nH6Bs+mQyJycnDR8+XMOHD7flagAA+NfiWd8AAJgYQQ0AgIkR1AAAmBhBDQCAiRHUAACYGEENAICJ\nEdQAAJgYQQ0AgIkR1AAAmBhBDQCAiRHUAACYGEENAICJEdQAAJgYQQ0AgIkR1AAAmBhBDQCAiRHU\nAACYGEENAICJEdQAAJgYQQ0AgIkR1AAAmBhBDQCAiRHUAACYGEENAICJEdQAAJgYQQ0AgIkR1AAA\nmBhBDQCAiRHUAACYGEENAICJEdQAAJgYQQ0AgIkR1AAAmBhBDQCAiRHUAACYGEENAICJEdQAAJgY\nQQ0AgIkR1AAAmBhBDQCAiRHUAACYGEENAICJEdQAAJhYjkF98OBBbdq0SZI0efJkvfzyy9q1a5fN\nCwMAAHcR1GPHjlWZMmW0a9cuHThwQG+//bamTp2aF7UBAPDAyzGonZ2d5ePjow0bNuj5559XuXLl\nZG/PGXMAAPJCjombnJysNWvWaP369apbt67i4uKUkJCQF7UBAPDAyzGo33zzTa1cuVJvvPGGChcu\nrNmzZ6tLly55UBoAAHDIaYZatWrJ399fhQsX1pUrV/T0008rMDAwL2oDAOCBl+MR9ZgxY7RmzRrF\nxcWpY8eOmjNnjt555508KA0AAOQY1L/99ps6dOigNWvWqE2bNpoyZYpOnz6dF7UBAPDAyzGoDcOQ\nJG3evFmNGzeWJKWmptq2KgAAIOkugrpMmTIKCQlRUlKS/Pz8tGzZMrm7u+dFbQAAPPByvJls7Nix\nOnr0qMqWLStJKleunHr37m3zwgAAwF0EtSRdunRJR44ckXT9tPfMmTO1ceNGmxYGAADuIqgHDhyo\n+Ph4HTlyRIGBgdq3b5/Cw8PzojYAAB54OV6jjo6O1pdffqkyZcpo6tSpmjdvng4cOJAXtQEA8MC7\n64d2p6enKyUlRd7e3jp27JgtawIAAP/vrp5M9vnnn6tp06Zq06aNSpcurczMzLyoDQCAB16OQd2v\nXz9lZGSoQIECqlatmmJiYlSnTp28qA0AgAdetkG9ePHibBdavXq12rdvb5OCAADA/2Qb1Lt3777j\nggQ1AAC2l21Qjx8/XpmZmbK3t77fLC0tTY6OjjYvDAAA3OGu73PnzikkJESJiYmWtv3796tt27aK\njY3Nk+IAAHjQZRvU48ePV9++fVWkSBFLW0BAgHr16qX33nsvT4oDAOBBl21QX7lyRS1atMjSHhIS\novPnz9u0KAAAcF22QZ2enp7tQsnJyTYpBgAAWMv2ZjI3Nzft379fAQEBVu07d+6Uh4eHzQtzP5Cs\na3/8ZfP1APgflwKu+V0C8MCxK1Dgjv3ZBvUbb7yh8PBwtW7dWpUrV1ZGRoZ2796tH374QXPmzMn1\nQm/1w/ZVcnC6c/EAco+np6cuXD6X32UAD5zUjNQ79md76jsgIEBLliyRvb29li9frtWrV8vd3V3L\nly/Xo48+muuFAgCArO74CNHixYvr9ddfz6taAADALe76r2cBAIC8R1ADAGBidxXUV69e1YEDBySJ\nP3EJAEAeyjGov//+e4WGhmrIkCGSpDFjxmjRokU2LwwAANxFUP/nP//R8uXLLd+djoiI0MKFC21e\nGAAAuIugLlKkiAoWLGiZdnFx4a9nAQCQR+749SxJ8vDw0HfffaeUlBQdOnRIq1evlqenZ17UBgDA\nAy/HI+pRo0bpwIEDSkpK0vDhw5WSkqKxY8fmRW0AADzwcjyidnNz04gRI/KiFgAAcIscg7pBgway\ns7PL0r5582Zb1AMAAG6SY1DPmzfP8ntaWpq2b9+ulJQUmxYFAACuyzGovb29raZ9fHzUvXt3denS\nxVY1AQCA/5djUG/fvt1qOjo6WmfOnLFZQQAA4H9yDOoZM2ZYfrezs1PhwoU1atQomxYFAACuyzGo\nBw8erEqVKuVFLQAA4BY5fo96woQJeVEHAAC4jRyPqEuVKqWwsDBVqVLF6tGh/fv3t2lhAADgLoK6\ndOnSKl26dF7UAgAAbpFtUK9YsUKtWrVS375987IeAABwk2yvUS9evDgv6wAAALeR481kAAAg/2R7\n6jsqKkoNGzbM0m4Yhuzs7HjWNwAAeSDboK5YsaImTZqUl7UAAIBbZBvUTk5OWZ7zDQAA8la216gD\nAgLysg4AAHAb2Qb1wIED87IOAABwG9z1DQCAiRHUAACYGEENAICJEdQAAJgYQQ0AgIkR1AAAmBhB\nDQCAiRHUAACYGEENAICJEdQAAJgYQQ0AgIkR1AAAmBhBDQCAiRHUAACYGEENAICJEdQAAJgYQQ0A\ngIkR1AAAmBhBDQCAiRHUAACYGEENAICJEdQAAJgYQQ0AgIkR1AAAmBhBDQCAiRHUAACYGEENAICJ\nEdQAAJgYQQ0AgIkR1AAAmBhBDQCAiRHUAACYGEENAICJEdQAAJgYQQ0AgIkR1AAAmBhBDQCAiRHU\nAACYGEENAICJEdQAAJgYQY3bOnPqrNoHh8q7kI/Onj5r1bds4XIF1X5Wvl6VVCegod57Z6IyMjIs\n/adPnlGPTq8p4LHqqugdoOdDOulA1EFL/+Oevll+HnMvp1oV6+bZ9gH3m20/b1chpyIaO+pdSVJa\nWpreeXuUKvr6q5jbQ6ro66+3h45QamqqZZmEhAT1ea2vvEs8ouLuJdS4flNF7YnKr03APSKokcWa\nFZFq2bCNvB/xztK3/adf9HrPAeo7oLcOnNmjL+bN1NIFy/TRhGmSpGvXrqljixflWshVP+3bqB2/\n/6yHvUvq5fbddO3aNUnSidijVj/HrhxWtSerKjSsQ55uJ3C/SE5O1quvvKYiRYpY2saNGa+vv/pa\n8xfO1aWr0Zq/cK5mz5qtCePet8zTuWOYzpw+ox17ftHxM/9V/Qb1NHL4O8rMzMyPzcA9smlQnz17\nVmFhYapQoYLOnTtny1UhF8VdjdfSdQvV7oW2Wfq+mjlLjYMaqmXbZ+Xs7Cw//yfUM7y7vpo5S5mZ\nmboUfVk16zylke+9Lfei7iriVkQ9+nbXH9GXdOzwsduu74vpXynpzyT1HdDb1psG3JdGDBupChV8\nFVAlwNK2Z/ce1a1fT1WqVlGBAgVUpWoV1WtQX7t+3SVJ2rnjV23auFkzv5ip0qW95e7urnfGjNSK\n1ctlb88x2v3EZq/WunXrFBoaqlKlStlqFbCRF14OVdnyj9+2b8/OKFWtUdWqrWqNKroac1Unjp3U\noz6PaMpnH8qzmIel/8yps6YqFp8AAA2CSURBVCpQoIC8HvbKMt6l6EuaOGaSxk0ZK0dHx9zdEOBf\n4Oet2zRvznxNnTHVqr1NuzbasvlH7fp1tzIyMnRg/wFt3fKT2rZvI0n6cdNm+ZTx0fLvluuJchVV\n6qHSatuqnU4cP5EPW4F/wmZBHRcXp7lz56p169a2WgXyQeyVWBX1cLdq8yzmKUmKuRyTZf6LF6L1\n9oB31OXVl/SQ10NZ+ieN/0i16z+tJ2tVt03BwH3sr7/+0quvvKb3Jo5TqVIPW/V16fayunbvqvq1\nG6iIi7tqVn9aoS+E6uWuL0uSzp07r/Pnzuu3Q7/pl13btDNqh1JSUtS2dXulpaXlx+bgHtksqDt0\n6KAyZcrYaniYkJ2dndX0wX2H1LJhG9VpUFsj3xueZf4/Ll7S/K+/Vb9BffKqROC+MmL4SJUvX05h\nL4dl6Zv84RTNn7dAm37aqKt/xmjLth+1fNkKjRszXpJkGIbS09P1weSJKlq0qEqX9tbESe/ryOEj\n2vHLzrzeFPwDXKjA31K8RHFdjY2zaouNiZUkqyPmDZGb1C4oVJ27d9LULyapQIECWcZasWSlSpby\nUvWnAm1bNHAf+nnrNs2bPV8fz/z4tv0fTfpIr/bqqZq1npKzs7NqPFldr/V+VZ9MnylJevjhh+Xq\n6ioXFxfLMo+XvX5J6/z587bfAOQah/wuAPeXGrUCtWen9dc7ft22S14lS8jn8cckSVs3b1Ovl/tq\n0syJatEmJNuxVi5dpaBnm9m0XuB+Nes/s5SUlKSagbUsbfHx8dr16y6t+n6VMjIylXnT1yIlKT09\n3XJHt3+Av+Lj43Xsv8dUrnw5SdLxY8clST4+PnmzEcgVHFHjb3mlTzf9uH6Lli9eqZSUFO3bs1+f\nTv1cPcNfkZ2dnZL+TNLrPd/S8HeH3DGk09PTdSDqoCpVqZSH1QP3jwkfvKdDRw/ql93bLT+B1QP1\nSs/u+m7lUj3XtrU+/+xLRe2JstxM9uXnX6lDaHtJUnDzIPlV9FPfXuGKjo7W5cuXFTFgsAJrBOqp\nmk/m89bh7+CIGlnUq9pY58+cU2amIUmqX7WJ7Oykdi+01cTp72nGrGn6YMwkvd7jLRUvUVzdenfV\nq/17SJIiV67VxfMX9c6g0Xpn0GircftFhOv1iHBJ129KS01NVfGHiuftxgH3CQ8PD3l4eFi1OTs7\ny83NTSVLltR7E8fLzc1NnV94SRfOX1DRou7q1LmTho0YKklydHTU8lXL9Gb/txTgV1WGYSioeZC+\nnPVFlvtJYG52hmEYtlzBtm3b1LVrV23YsEGlS5fOcf6UlBQdPHhQD5X1kINT1uuaAGzDv3Q1XbjM\n8w6AvJaakqr//n5c/v7+cnZ2ztJvsyPqoKAgXbhwQTc+BwQHB8vOzk6tW7fW2LFjbbVaAAD+VWwW\n1D/88IOthgYA4IHBzWQAAJgYQQ0AgIkR1AAAmBhBDQCAiRHUAACYGEENAICJEdQAAJgYQQ0AgIkR\n1AAAmBhBDQCAiRHUAACYGEENAICJEdQAAJgYQQ0AgIkR1AAAmBhBDQCAiRHUAACYGEENAICJEdQA\nAJgYQQ0AgIkR1AAAmBhBDQCAiRHUAACYGEENAICJEdQAAJgYQQ0AgIkR1AAAmBhBDQCAiRHUAACY\nGEENAICJEdQAAJgYQQ0AgIkR1AAAmBhBDQCAiRHUAACYGEENAICJEdQAAJgYQQ0AgIkR1AAAmBhB\nDQCAiRHUAACYGEENAICJEdQAAJgYQQ0AgIkR1AAAmBhBDQCAiRHUAACYGEENAICJEdQAAJgYQQ0A\ngIkR1AAAmBhBDQCAiRHUAACYGEENAICJEdQAAJgYQQ0AgIkR1AAAmBhBDQCAiRHUAACYGEENAICJ\nEdQAAJgYQQ0AgIkR1AAAmBhBDQCAiRHUAACYGEENAICJOeR3AbcyDEOSlJGWkc+VAA8WLy8vpaak\n5ncZwAMnLTVN0v/y71Z2RnY9+SQxMVFHjx7N7zIAAMhTvr6+KlKkSJZ20wV1ZmamkpKS5OjoKDs7\nu/wuBwAAmzIMQ2lpaSpUqJDs7bNekTZdUAMAgP/hZjIAAEyMoAYAwMQIagAATIygBgDAxAhqAABM\njKAGAMDECGoAAEzMdI8Qxf3j1KlTWrBggfbu3avY2FjZ2dmpePHiqlGjhjp27KiHH344v0sEgPse\nR9S4J9u2bVOrVq20Y8cO+fr6qnnz5goODlbZsmW1ceNGPfvss9q7d29+lwk8sEaMGJHfJSCX8GQy\n3JOOHTuqTZs2Cg0NvW3/l19+qXXr1mnBggV5XBkASapSpYr27duX32UgF3DqG/fk+PHjatOmTbb9\nL774oqZNm5aHFQEPjgsXLtyx3zCMbP8SE+4/BDXuiZubm6Kjo/Xoo4/etj86Olqurq55XBXwYGjc\nuPEd/2iRYRj8UaN/EYIa96RevXrq37+/wsPDVblyZbm7u0uS4uLitG/fPk2dOlUtWrTI5yqBf6cn\nn3xSpUuXVqtWrW7bbxiGXn311TyuCrbCNWrck2vXrmnUqFFauXKlMjIyrPocHR3Vrl07DR06VI6O\njvlUIfDvdfbsWXXs2FHz5s3TY489dtt5uEb970FQ4x9JSEjQoUOHFBsbK0kqVqyY/P39Vbhw4Xyu\nDPh3W79+veLj49WuXbvb9gcHBysyMjKPq4ItENQAAJgY36MGAMDECGoAAEyMoAby2Llz5+Tv76+w\nsDCFhYWpY8eOeuutt5SQkHDPYy5atEiDBw+WJL3xxhv6448/sp13z549Onv27F2PnZ6ergoVKty2\nb//+/erSpYvatm2rDh06qFevXpaxBw8erEWLFv2NrQBwOwQ1kA88PT01e/ZszZ49WwsWLFCJEiX0\nySef5MrYkydPlpeXV7b9S5cu/VtBnZ3Lly+rb9++6t+/v5YuXapFixYpJCREr7zyitLT0//x+ACu\n43vUgAk8+eST+vbbbyVdf5hF8+bNdfbsWU2dOlWrV6/WnDlzZBiGPD09NXbsWHl4eGju3LmaP3++\nSpYsqRIlSljGaty4sf7zn//okUce0dixY3Xw4EFJUteuXeXg4KDIyEjt379fQ4YM0WOPPaZRo0Yp\nOTlZf/31l958803Vrl1bJ06c0MCBA1WwYEHVrFnztjXPmTNHrVq1UrVq1SxtLVu2VP369eXgYP1f\ny0cffaTt27dLkkqWLKmJEyfKzs5Ow4cP18mTJ2VnZyc/Pz+NHDlSv/zyiz788EO5uLgoNTVVw4YN\nU0BAQK7ub+B+QlAD+SwjI0Pr1q1T9erVLW0+Pj4aOHCgLl68qJkzZ2rx4sVycnLSrFmz9Omnn6pP\nnz6aOnWqIiMj5eHhoV69elkeOnPDihUrdOXKFS1cuFAJCQkaMGCAPvnkE/n5+alXr156+umn1bNn\nT3Xr1k21atXS5cuXFRoaqrVr12r69Olq166dOnXqpLVr19627mPHjt32gRu31pGenq6CBQtq3rx5\nsre3V/fu3bV161Z5eXlp3759WrNmjSRp4cKFSkxM1KxZs9S1a1eFhIToxIkTOnny5D/dxcB9jaAG\n8kFsbKzCwsIkSZmZmapRo4a6dOli6b9xlBoVFaXLly+re/fukqTU1FSVLl1ap0+flre3tzw8PCRJ\nNWvW1OHDh63WsX//fsvRsJubmz777LMsdezYsUNJSUmaPn26JMnBwUExMTE6evSoevbsKUmqVavW\nbbehQIECWR52czsODg6yt7dXp06d5ODgoBMnTujq1auqXbu2PDw81KNHDzVq1EjNmzdXkSJF1LJl\nS02aNEn79+9XkyZN1KRJkxzXAfybEdRAPrhxjTo7N57o5uTkpICAAH366adW/QcOHLB6lnNmZmaW\nMezs7G7bfjMnJydNmzZNnp6eVu2GYcje/votLNmFsa+vr/bs2aOQkBCr9n379lmdqt69e7eWLFmi\nJUuWyNXVVf369ZMkOTs7a968eTp06JA2bdqk9u3ba/78+QoJCVHdunW1detWTZ8+XQEBAXrzzTfv\nuB3Avxk3kwEmVrlyZe3fv1+XL1+WJK1Zs0br16/Xo48+qnPnzikhIUGGYViu/96sWrVq+umnnyRJ\nf/75pzp06KDU1FTZ2dkpLS1NklS9enXLqefY2Fi9++67kqSyZcta/p747caWpE6dOikyMlK//PKL\npW316tUaNmyYZXxJiomJkbe3t1xdXXX+/Hnt3btXqampOnDggL777jtVqlRJffv2VaVKlXTq1ClN\nnTpVGRkZCgkJ0bBhwxQVFfVPdyNwX+OIGjAxLy8vDRs2TK+++qoKFiwoFxcXTZgwQe7u7nrttdf0\n4osvytvbW97e3rp27ZrVss2bN9eePXvUsWNHZWRkqGvXrnJyclKdOnU0cuRIDR06VMOGDdOIESO0\natUqpaamqlevXpKkPn36KCIiQpGRkapWrVqWm8Ok62cF5syZozFjxmjChAlycXGRt7e3vv76azk5\nOVnmq1Onjr766iu98MILKl++vMLDwzV9+nR99NFH+uGHH/Ttt9/KyclJjz76qAIDA3Xx4kV169ZN\nbm5uyszMVHh4uG13MmByPEIUAAAT49Q3AAAmRlADAGBiBDUAACZGUAMAYGIENQAAJkZQAwBgYgQ1\nAAAm9n9QR+M8QEgGtgAAAABJRU5ErkJggg==\n",
        "metadata": {
         "tags": []
        },
        "output_type": "display_data",
        "text/plain": "<Figure size 576x396 with 1 Axes>"
       }
      ]
     }
    },
    "9e338844e75b4e17be8483529f5f38fd": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "ProgressStyleModel",
     "state": {
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "ProgressStyleModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/base",
      "_view_module_version": "1.2.0",
      "_view_name": "StyleView",
      "bar_color": null,
      "description_width": ""
     }
    },
    "d5b6fce1763b4b54898ff3397b0f5bb0": {
     "model_module": "@jupyter-widgets/controls",
     "model_name": "IntProgressModel",
     "state": {
      "_dom_classes": [],
      "_model_module": "@jupyter-widgets/controls",
      "_model_module_version": "1.5.0",
      "_model_name": "IntProgressModel",
      "_view_count": null,
      "_view_module": "@jupyter-widgets/controls",
      "_view_module_version": "1.5.0",
      "_view_name": "ProgressView",
      "bar_style": "",
      "description": "Processing: ",
      "description_tooltip": null,
      "layout": "IPY_MODEL_2a81017413ca4fe789c2272a5831a069",
      "max": 5,
      "min": 0,
      "orientation": "horizontal",
      "style": "IPY_MODEL_57b94ac505d142769b79de2f1e5c1166",
      "value": 5
     }
    }
   }
  }
 },
 "nbformat": 4,
 "nbformat_minor": 1
}
